我有一个data.table,有47个变量,可以查看5007个博士学生的成绩,看起来像这样
sample<-data.table(PHD_STUDENT_ID=c(101:120),STUDY_LOCATION=c("Sydney","Canberra","Sydney","Sydney",
"Malaysia", "Malaysia", "CLF", "DRR", "GHS", "HMS", "DRJD", "KLS", "Malaysia",
"Singapore", "Melbourne", "RD3S", "South Africa", "RME", "Sydney", "Canberra"),
GRADE=c(51:70))
所以data.table看起来像这样
PHD_STUDENT_ID STUDY_LOCATION GRADE
1 101 Sydney 51
2 102 Canberra 52
3 103 Sydney 53
4 104 Sydney 54
5 105 Malaysia 55
6 106 Malaysia 56
7 107 CLF 57
8 108 DRR 58
.........
除了研究地点为“马来西亚”,“南非”或“新加坡”的行外,我需要保留所有行。基本上这些国家的校园里没有的所有价值观。我有数百个独特的值,其中研究地点只是实验室的代码,例如我希望保留的“CLF”和“DRR”,所以我不能只是澳大利亚城市的子集。
有关如何通过参考STUDY_LOCATION中的值来对此数据表进行子集的任何建议都不是“马来西亚”,“南非”或“新加坡”,我们将不胜感激。
答案 0 :(得分:3)
你可以尝试
sample[!STUDY_LOCATION %in% c('Malaysia', 'South Africa', 'Singapore')]
答案 1 :(得分:3)
我假设您正在学习data.table。因此,data.table方式是
setkey(sample, STUDY_LOCATION)
sample[!c('Malaysia', 'South Africa', 'Singapore')]