【问题标题】:R subset columns within a list列表中的 R 子集列
【发布时间】:2016-09-27 02:52:38
【问题描述】:

我有很多数据框,所以我将它们作为列表导入,但我发现这些数据框的列数不同,所以我决定将它们切断,我只想对第 1 到第 3 列进行排序列表中的数据框。

list
[1]
TBBA-06-5415-01A-01D-1481-05    g01023169   0.956810536587318   BSL 7
TBBA-06-5415-01A-01D-1481-05    g03242877   0.0365834311749085  BSL 7
TBBA-06-5415-01A-01D-1481-05    g06008330   0.0400302305964602  BSL 7
TBBA-06-5415-01A-01D-1481-05    g08861569   0.0556296569207048  BSL 7
TBBA-06-5415-01A-01D-1481-05    g09748749   0.183017407923698   BSL 7
[2]
TBBA-62-A472-01A-11D-A24I-05    g02726808   0.860054268107413   OTB
TBBA-62-A472-01A-11D-A24I-05    g04243127   0.897393495417269   OTB
TBBA-62-A472-01A-11D-A24I-05    g10537079   0.875143441641266   OTB
TBBA-62-A472-01A-11D-A24I-05    g12497728   0.935925242951832   OTB
TBBA-62-A472-01A-11D-A24I-05    g13195463   NA  OTB
[3]
TBBA-KK-A7AV-01A-11D-A32C-05    g02442630   0.862838460053133   AS  9   133318907
TBBA-KK-A7AV-01A-11D-A32C-05    g11045524   0.369049794350982   AS  9   133320781
TBBA-KK-A7AV-01A-11D-A32C-05    g13597397   0.235754213039205   AS  9   133320948
TBBA-KK-A7AV-01A-11D-A32C-05    g13835114   0.155860360642954   AS  9   133327530
TBBA-KK-A7AV-01A-11D-A32C-05    g14010829   0.668836842295365   AS  9
[N]
 ...

Desired output:
[1]     
TBBA-06-5415-01A-01D-1481-05    g01023169   0.956810537
TBBA-06-5415-01A-01D-1481-05    g03242877   0.036583431
TBBA-06-5415-01A-01D-1481-05    g06008330   0.040030231
TBBA-06-5415-01A-01D-1481-05    g08861569   0.055629657
TBBA-06-5415-01A-01D-1481-05    g09748749   0.183017408
[2]     
TBBA-62-A472-01A-11D-A24I-05    g02726808   0.860054268
TBBA-62-A472-01A-11D-A24I-05    g04243127   0.897393495
TBBA-62-A472-01A-11D-A24I-05    g10537079   0.875143442
TBBA-62-A472-01A-11D-A24I-05    g12497728   0.935925243
TBBA-62-A472-01A-11D-A24I-05    g13195463   NA
[3]     
TBBA-KK-A7AV-01A-11D-A32C-05    g02442630   0.86283846
TBBA-KK-A7AV-01A-11D-A32C-05    g11045524   0.369049794
TBBA-KK-A7AV-01A-11D-A32C-05    g13597397   0.235754213
TBBA-KK-A7AV-01A-11D-A32C-05    g13835114   0.155860361
TBBA-KK-A7AV-01A-11D-A32C-05    g14010829   0.668836842
[N]
...

我对 R 中的列表不熟悉。感谢您的帮助。

【问题讨论】:

    标签: r list sorting


    【解决方案1】:

    我们可以使用 lapply 循环遍历 list 并提取 ([) 前 3 列 (1:3)。

    lapply(lst, `[`, 1:3)
    

    如果我们从文件读取到list,另一个选项是fread 中的select 选项,来自data.table,我们指定要读取的列数。

    假设,我们要读取工作目录下的所有.csv文件

    library(data.table)
    files <- list.files(pattern = ".csv")
    lst1 <- lapply(files, fread, select = 1:3) 
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2015-01-29
      • 1970-01-01
      • 2020-10-10
      • 2019-09-29
      • 1970-01-01
      • 2020-04-27
      • 2018-09-21
      相关资源
      最近更新 更多