【发布时间】:2013-09-09 03:55:45
【问题描述】:
我非常担心这已被问及会被否决,但我在文档中没有找到答案(?“[”),发现很难搜索。
data(wines)
# This is allowed:
alcoholic <- wines[, 1]
alcoholic <- wines[, "alcohol"]
nonalcoholic <- wines[, -1]
# But this is not:
fail <- wines[, -"alcohol"]
我知道两种解决方案,但因为需要它们而感到沮丧。
win <- wines[, !colnames(wines) %in% "alcohol"] # snappy
win <- wines[, -which(colnames(wines) %in% "alcohol")] # snappier!
【问题讨论】:
-
snappy和snappier是积极的还是消极的措施?在这些情况下,我更喜欢setdiff。你期望-"alcohol"会返回什么?它本身不能作为命令工作,那么为什么在尝试子集时它会起作用? -
也许不能回答你的“为什么”,就“为什么有人选择以这种方式实现它”而言,但无论如何:来自
?[:“仅限[-indexing:我, j, ... 可以是逻辑向量(您的!替代方案)[...] 也可以是负整数(您的which替代方案)。 -
如果您只是在寻找更短的东西:
wines[names(wines)!="alcohol"] -
subset(airquality, select = -Temp) -
葡萄酒数据集从何而来?我得到“未找到”(R 2.15,所以可能是新版本)。