我正在阅读R Cookbook。书中的陈述说明如下:
“向量可以包含其他数字,字符串或逻辑但不能混合。”
我想测试一下,所以我创建了以下向量:
u <- c("c",1,TRUE)
u
[1] "c" "1" "TRUE"
看起来它将所有内容都更改为字符串。然后我做了以下事情:
u <- c(TRUE,0)
u
[1] 1 0
所以看起来当混合类型时,它们都被转换为类似的类型。我的问题是R如何确定哪种类型?
答案 0 :(得分:2)
如this article中所述,较大的类型获胜。也就是说,可以代表更多胜利的类型。
在你的第一个例子中,角色可以代表所有其他三个,所以它强迫每个人都有角色。
第二种情况是整数大于逻辑。
This answer列出了完整的层次结构。
raw < logical < integer < double < complex < character < list
答案 1 :(得分:1)
您可能会发现Advanced R图书的“强制”部分很有帮助。元素被强制从最少到最灵活的类型(逻辑&gt;整数&gt;双&gt;字符)。