我有一个带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/

10-09 17:08
查看更多