我有一个命名逻辑,我想用它来过滤逻辑矢量为FALSE的原始数据帧
我尝试使用两者的结合,但这不起作用。
命名的逻辑向量如下:
fr_Ar_COO fr_C_S fr_SH fr_aldehyde
TRUE TRUE TRUE FALSE
我想过滤一个像这样的数据框:(列名)
fr_Ar_COO fr_C_S fr_SH fr_aldehyde active
因此fr_aldehyde
应该被过滤掉,因为逻辑向量等于FALSE
答案 0 :(得分:3)
这是一种方法:
# assuming your data frame is called df,
# and assuming 'v' is the logical vector
df[, names(v)[v]]
使用names(v)[v]
将仅返回逻辑向量具有TRUE
值的列名。
这是一个示例脚本:
df <- data.frame(A=c(1:3), B=c(4:6), C=c(7:9))
df
v <- c(A=TRUE, B=FALSE, C=TRUE)
df[, names(v)[v]]
A B C
1 1 4 7
2 2 5 8
3 3 6 9
A C
1 1 7
2 2 8
3 3 9