R:通过匹配字符串来对数据表进行子集化

时间:2016-06-06 13:05:47

标签: r database data.table subset

我在R(47541025行)中有这个数据表:

require(data.table)
DT<-fread("pmiDistances.csv")

head(DT)

     language 1                        language 2            distance
1: Kho.CENTRAL_KHOISAN.GWI           Kho.CENTRAL_KHOISAN.GWI 0.0000000
2: Kho.CENTRAL_KHOISAN.GWI         Kho.CENTRAL_KHOISAN.GXANA 0.2195843
3: Kho.CENTRAL_KHOISAN.GWI Kho.CENTRAL_KHOISAN.KHOEKHOEGOWAB 0.6749363
4: Kho.CENTRAL_KHOISAN.GWI          Kho.CENTRAL_KHOISAN.KHWE 0.6089206
5: Kho.CENTRAL_KHOISAN.GWI        Kho.CENTRAL_KHOISAN.KORANA 0.7163111
6: Kho.CENTRAL_KHOISAN.GWI         Kho.CENTRAL_KHOISAN.KWADI 0.8017179

所以这基本上是图表中几个节点及其距离的列表

我有兴趣提取一个距离为41种语言的子集,我保存在.txt文件中

最聪明的方法是什么? (我不认为2嵌套for循环会起作用)

1 个答案:

答案 0 :(得分:0)

@digEmAll演示了执行此操作的典型方法:

DT[language1 %in% desired_subset & language2 %in% desired_subset]

如果您计划重复此操作,您可能还需要关键data.table,因为它太大了:

setkey(DT, language1, language2)

DT[.(desired_subset, desired_subset)]

看来你最好阅读Getting Started Page,尤其是你的问题vignette on subsetting