如何在R中使用空字符进行子集化?

时间:2016-05-18 02:18:07

标签: r dataframe subset

这个让我撕裂了我的头发。假设我有一个这样的数据框:

xx <- data.frame(A = c(1,2,3), B = c(4,5,6))
rownames(xx) <- c("p", "q", "r")

这给出了:

  A B
p 1 4
q 2 5
r 3 6

我有R代码,可以导致一个空字符(字符(0)),用于尝试和子集df xx。如果我定义一个零字符:

z = character(0)

然后我用xx对xx进行子集化。

subset(xx, rownames(xx) != z)

我明白了:

[1] A B
<0 rows> (or 0-length row.names)

但我想要的是完整数组xx,因为没有空行名。为了完成这项工作,我必须将空字符转换为空字符串:

z <- ""

使用z&lt; - “”,当我的子集我得到整个df,这是我所期望的。显式捕获并将所有这些空字符转换为空字符串太笨拙了。怎么解决这个?

1 个答案:

答案 0 :(得分:1)

尝试使用%in%代替!=

subset(xx, !(rownames(xx) %in% z))