【发布时间】:2012-11-30 15:07:54
【问题描述】:
我需要从 R 中的数据框中删除几个因子级别。 使用此question 中提供的解决方案,我可以摆脱其中一个,但是... 是否可以一次移除多个因子水平?
我想出了这段代码,根据需要删除的因素多次设置子集...
dino <- read.csv('/home/maxim/onset.csv', header=TRUE)
dino <- subset(dino, onset != "QT")
dino <- subset(dino, onset != "")
table(droplevels(dino)$onset)
在我的情况下它工作正常,但我想知道是否有人知道更直接的方法。 (顺便说一句,我对 R 不是很精通……)
【问题讨论】:
-
subset(dino, ! onset %in% c("QT",""))是要走的路 -
@peixe
subset评估其参数的方式在某些情况下可能会导致意外结果。如果您阅读?subset,您会注意到最后的警告,即仅以交互方式使用此功能,也就是说,当您在 R shell 中工作时。如果您正在编写的内容将成为脚本的一部分,最好坚持标准的[表示法:dino[! dino$onset %in% c('QT', ''), ] -
哇,我向你脱帽致敬。这是完美的。您可以将其发布为问题的解决方案吗? :) 谢谢!
-
@mplourde 哦,你是对的。我没有注意到那个警告......
-
@peixe 我认为他们会在语言中保留一些既多余又有问题的东西有点奇怪,但事实就是如此。