我有一个带47个变量的data.table,查看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”中的值来对数据表进行子集化的任何建议不是“马来西亚”,“南非”或“新加坡”。
最佳答案
我假设您正在学习data.table。因此,data.table的方式是
setkey(sample, STUDY_LOCATION)
sample[!c('Malaysia', 'South Africa', 'Singapore')]
关于r - 通过引用data.table r中的列值来删除行,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/27339325/