【发布时间】:2017-01-19 00:16:13
【问题描述】:
我有一个这样的数据框:
| x | y |
|---|---|
| a | e |
| b | f |
| c | g |
| d | h |
我有一个 bool 值的数据框:
| x | y |
|-------|-------|
| FALSE | TRUE |
| FALSE | TRUE |
| TRUE | FALSE |
| TRUE | FALSE |
(实际上这些东西是 a different post 的结果,但这并不相关,因为这是一个独立的问题)
我只是在寻找一种将带有布尔值的 df 应用于“常规”df 的方法,并得到这个:
| x | y |
|---|---|
| | e |
| | f |
| c | |
| d | |
This question 提出了一个非常相似的问题,但解决方案却朝着不同的方向发展。
我尝试了多种不同的索引方案,但它们都未能保留我想要的输出的矩形结构。
df[mask] 好得令人难以置信。
非常感谢任何建议。
我的数据:
df <- data.frame(
x = c('a', 'b', 'c', 'd'),
y = c('e', 'f', 'g', 'h'), stringsAsFactors = F
)
mask <- structure(list(x = c(FALSE, FALSE, TRUE, TRUE), y = c(TRUE, TRUE,
FALSE, FALSE)), .Names = c("x", "y"), row.names = c(NA, -4L), class = "data.frame")
【问题讨论】:
-
您是否希望输出中出现这些空白值?
-
空白或NA或任何方便的...
-
df$x <- ifelse(mask$x, df$x, ""); df$y <- ifelse(mask$y, df$y, "")将在这个简单的情况下工作 -
@SymbolixAU 这是一个非常好的方法。我应该想到那个tttt...
-
你不是已经在之前的帖子中得到答案了吗?这个问题有什么不同?