【发布时间】:2012-02-03 12:11:59
【问题描述】:
假设一个矩阵有 3 个名为“A”、“B”、C”的列,我可以像这样取消选择“B”和“C”列:
df[, -c(2, 3)]
但是如果我想使用列名怎么办?我怎样才能 df[, -c("B", "C")]?
【问题讨论】:
-
同意它是重复的。评论:-grep() 策略更通用。
假设一个矩阵有 3 个名为“A”、“B”、C”的列,我可以像这样取消选择“B”和“C”列:
df[, -c(2, 3)]
但是如果我想使用列名怎么办?我怎样才能 df[, -c("B", "C")]?
【问题讨论】:
匹配是你的朋友:
R> DF <- data.frame(A=1:2, B=2:3, C=3:4)
R> DF[, !(colnames(DF) %in% c("B","C")), drop=FALSE]
A
1 1
2 2
R>
关键是您需要布尔向量来进行索引(或者,数字索引)。所以任何创建布尔值的表达式都可以。
【讨论】: