【问题标题】:How to subset with empty characters in R?如何在 R 中使用空字符进行子集化?
【发布时间】:2016-05-18 02:18:07
【问题描述】:

这个让我把头发扯掉了。假设我有一个这样的数据框:

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 代码会产生一个空字符 (character(0)),用于尝试和子集 df xx。如果我定义一个零字符:

z = character(0)

然后我将 xx 子集化为:

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

我明白了:

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

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

z <- ""

使用 z

【问题讨论】:

  • 空字符出现在代码前面的一些计算中。通常,我将使用表示行名称的字符进行子集,但有时代码会提供一个空字符作为子集名称。

标签: r dataframe subset


【解决方案1】:

尝试使用%in% 而不是!=

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

【讨论】:

  • 完美!适用于空字符和空字符串。谢谢!!
猜你喜欢
  • 1970-01-01
  • 2016-11-08
  • 2011-01-08
  • 1970-01-01
  • 2018-12-29
  • 2020-07-05
  • 1970-01-01
  • 1970-01-01
  • 2012-10-10
相关资源
最近更新 更多