【问题标题】:R: subset a data table by matching of stringsR:通过匹配字符串来子集数据表
【发布时间】:2016-06-06 13:05:46
【问题描述】:

我在 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 循环会起作用)

【问题讨论】:

  • 你的倒数距离是什么意思,你能显示几行 .txt 文件吗?
  • 我的错,只是两种语言之间的距离! .txt 文件只是我感兴趣的语言的 1 列列表
  • DT[language1 %in% fortyOneLanguages &amp; language2 %in% fortyOneLanguages ,] ?

标签: r database data.table subset


【解决方案1】:

@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

【讨论】:

    猜你喜欢
    • 2023-03-05
    • 1970-01-01
    • 2021-04-18
    • 2016-10-18
    • 1970-01-01
    • 1970-01-01
    • 2022-01-10
    • 1970-01-01
    • 2014-10-26
    相关资源
    最近更新 更多