你如何跳过R中的空向量

时间:2014-06-26 15:27:28

标签: r

我有一个没有任何内容的向量x。

dput(x)
""

当我执行length(x)nrow(data.frame(x))时,它会显示为1。

如何设置if语句,如果为空,请转到下一个?

我有:

if(length(x)>1){

似乎没有用。

2 个答案:

答案 0 :(得分:4)

你的矢量不是空的,它由1个空字符串(一个零长度的字符串)组成。

x <- ""
dput(x)
## ""

在此,您要测试nchar(x) == 0all(nchar(x) == 0)。或者,您可能希望检查nzchar(x)是否返回FALSE

答案 1 :(得分:0)

您的x不是&#34;空&#34;。它是长度为1的向量,单个条目是空字符串。这与NULLNA或许多其他定义&#34;空虚&#34;的方式不同在R.(宁可禅)。

答案将取决于x中可能存在的其他因素。 @gagolews已经给出了一个很好的答案。替代方案可以包括all(x=="")或类似的。无论你做什么,都要考虑x是否包含NULL,或NA是否包含真正的字符串。

我认为你会发现The R Inferno最具启发性。