character()和""之间的差异在R

时间:2014-04-13 09:12:43

标签: r character string

只是意识到输出是不同的:

> y=""
> y
[1] ""
> y=character()
> y
character(0)

然而,并没有发生任何奇怪的事情。我不清楚这些差异,并希望清楚地记住这个问题(如果有的话)。所以,谢谢你的帮助。

3 个答案:

答案 0 :(得分:6)

character(0)是具有ZERO元素的字符类型的向量。但是""是带有一个元素的字符类型向量,它等于空字符串。

答案 1 :(得分:4)

您将向量的长度(元素数)与字符串中的字符数混淆:

考虑以下三点:

> x=c("","")
> y=""
> z=character()

它们的长度是向量中元素的数量:

> length(x)
[1] 2
> length(y)
[1] 1
> length(z)
[1] 0

要获取字符数,请使用nchar

> nchar(x)
[1] 0 0
> nchar(y)
[1] 0
> nchar(z)
integer(0)

请注意,nchar(x)显示x的每个元素中有多少个字母,因此它返回两个零的整数向量。 nchar(y)则是一个零的整数向量。

所以最后一个,nchar(z)返回一个integer(0),这是一个没有零的整数向量。它的长度为零。它没有元素,但如果它确实有元素,它们就是整数。

character(0)是字符类型对象的空向量。比较:

> character(0)
character(0)
> character(1)
[1] ""
> character(2)
[1] "" ""
> character(12)
[1] "" "" "" "" "" "" "" "" "" "" "" ""

答案 2 :(得分:3)

如果y="",则length(y)1。 另一方面,如果y=character(),则length(y)0