如何检测是否不是向量中的所有元素都被引用

How to detect if not all elements in vector are quoted

假设我有这个向量:

vars <- c(1, "2")

由于这两个元素在同一个向量中,它们都被强制转换为字符。即使我将它们视为列表中的独立元素,一旦它们从同一个向量中提取出来,它们的类型就会保留在列表中:

sapply(as.list(vars), class)
[1] "character" "character"

哪个函数会发现并非矢量 vars 中的所有元素都是字符类型?也许另一种说法是:什么函数会检测到向量 vars 上的所有元素都没有被引用?

与其保留 vector,不如创建一个 list,每个元素可以有多个 type

vars <- list(1, "2")
sapply(vars, class)
#[1] "numeric"   "character"

当我们将其作为 vector 开始时,无法知道哪个元素应该是数字或字符,因为一旦创建,这两个元素都是 character