开始学习R,希望能帮助您理解R如何确定不同向量的类别。我初始化vec <- c(1:6)
,当我执行class(vec)
时得到“整数”。为什么不是'数字',因为我认为R中的整数看起来像这样:4L
同样对于vec2 <- c(1,'a',2,TRUE)
,为什么class(vec2)
是“字符”?我猜R会拾取字符并自动将其他所有字符分配为字符...所以实际上看起来像c('1','a','2','TRUE')
正确吗?
答案 0 :(得分:4)
键入以下内容,您将看到冒号运算符的帮助页面。
?`:`
这里是一个段落。
对于数字参数,为数字向量。这将是整数类型 如果from是整数值,并且结果可以在R中表示 整数类型,否则为“ double”类型(又名“ numeric”模式)。
因此,在您的示例c(1:6)
中,由于1
参数的from
在R中可以表示为整数,因此结果序列变为整数。
在这种情况下,c
不需要创建向量。
对于第二个问题,由于向量中的所有元素都必须具有相同的类型,因此R将自动将所有元素转换为相同的类型。在这种情况下,可以将所有内容转换为字符,但无法将“ a”转换为数字,因此会产生字符向量。