只是意识到输出是不同的:
> y=""
> y
[1] ""
> y=character()
> y
character(0)
然而,并没有发生什么奇怪的事情。我不清楚这些差异,并希望牢记这个问题(如果有的话)。所以,谢谢你的帮助。
最佳答案
您将向量的长度(元素数)与字符串中的字符数混淆:
考虑以下三点:
> 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] "" "" "" "" "" "" "" "" "" "" "" ""
关于r - R 中 character() 和 ""之间的差异,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/23040895/