R矢量中的不同类型

时间:2015-05-27 20:04:58

标签: r

我正在阅读R Cookbook。书中的陈述说明如下:

  

“向量可以包含其他数字,字符串或逻辑但不能混合。”

我想测试一下,所以我创建了以下向量:

u <- c("c",1,TRUE)
u
[1] "c"    "1"    "TRUE"

看起来它将所有内容都更改为字符串。然后我做了以下事情:

u <- c(TRUE,0)
u
[1] 1 0

所以看起来当混合类型时,它们都被转换为类似的类型。我的问题是R如何确定哪种类型?

2 个答案:

答案 0 :(得分:2)

this article中所述,较大的类型获胜。也就是说,可以代表更多胜利的类型。

在你的第一个例子中,角色可以代表所有其他三个,所以它强迫每个人都有角色。

第二种情况是整数大于逻辑。

This answer列出了完整的层次结构。

raw < logical < integer < double < complex < character < list

答案 1 :(得分:1)

您可能会发现Advanced R图书的“强制”部分很有帮助。元素被强制从最少到最灵活的类型(逻辑&gt;整数&gt;双&gt;字符)。