【问题标题】:Organize csv by identifier and open/process subset in R按标识符组织csv并在R中打开/处理子集
【发布时间】:2020-04-09 18:50:09
【问题描述】:

我有以下 CSV 文件:

files = c("C:\\Users\\sh\\/2018/April 17 2018/user_22226.csv", 
"C:\\Users\\sh\\/2018/April 17 2018/user_22227.csv", 
"C:\\Users\\sh\\/2018/April 17 2018/user_22228.csv", 
"C:\\Users\\sh\\/2018/April 17 2018/user_22232.csv", 
"C:\\Users\\sh\\/2018/April 2 2018/user_21785.csv", 
"C:\\Users\\sh\\/2018/April 2 2018/user_21815.csv", 
"C:\\Users\\sh\\/2018/April 2 2018/user_21821.csv", 
"C:\\Users\\sh\\/2018/April 2 2018/user_21822.csv", 
"C:\\Users\\sh\\/2018/April 2 2018/user_22226.csv", 
"C:\\Users\\sh\\/2018/April 2 2018/user_22227.csv", 
"C:\\Users\\sh\\/2018/April 2 2018/user_22228.csv", 
"C:\\Users\\sh\\/2018/April 2 2018/user_22230.csv", 
"C:\\Users\\sh\\/2018/April 2 2018/user_22232.csv", 
"C:\\Users\\sh\\/2018/April 23 2018/user_22921.csv", 
"C:\\Users\\sh\\/2018/April 9 2018/user_22226.csv", 
"C:\\Users\\sh\\/2018/April 9 2018/user_22227.csv", 
"C:\\Users\\sh\\/2018/April 9 2018/user_22228.csv", 
"C:\\Users\\sh\\/2018/April 9 2018/user_22230.csv", 
"C:\\Users\\sh\\/2018/April 9 2018/user_22232.csv", 
"C:\\Users\\sh\\/2018/August 13 2018/user_29607.csv")

我可以通过结尾标识符来组织它们:

files_sorted = files[order(gsub('.*_(\\d{5})[.].*','\\1',files))]

给我:

 [1] "C:\\Users\\sh\\/2018/April 2 2018/user_21785.csv"  
 [2] "C:\\Users\\sh\\/2018/April 2 2018/user_21815.csv"  
 [3] "C:\\Users\\sh\\/2018/April 2 2018/user_21821.csv"  
 [4] "C:\\Users\\sh\\/2018/April 2 2018/user_21822.csv"  
 [5] "C:\\Users\\sh\\/2018/April 17 2018/user_22226.csv" 
 [6] "C:\\Users\\sh\\/2018/April 2 2018/user_22226.csv"  
 [7] "C:\\Users\\sh\\/2018/April 9 2018/user_22226.csv"  
 [8] "C:\\Users\\sh\\/2018/April 17 2018/user_22227.csv" 
 [9] "C:\\Users\\sh\\/2018/April 2 2018/user_22227.csv"  
[10] "C:\\Users\\sh\\/2018/April 9 2018/user_22227.csv"  
[11] "C:\\Users\\sh\\/2018/April 17 2018/user_22228.csv" 
[12] "C:\\Users\\sh\\/2018/April 2 2018/user_22228.csv"  
[13] "C:\\Users\\sh\\/2018/April 9 2018/user_22228.csv"  
[14] "C:\\Users\\sh\\/2018/April 2 2018/user_22230.csv"  
[15] "C:\\Users\\sh\\/2018/April 9 2018/user_22230.csv"  
[16] "C:\\Users\\sh\\/2018/April 17 2018/user_22232.csv" 
[17] "C:\\Users\\sh\\/2018/April 2 2018/user_22232.csv"  
[18] "C:\\Users\\sh\\/2018/April 9 2018/user_22232.csv"  
[19] "C:\\Users\\sh\\/2018/April 23 2018/user_22921.csv" 
[20] "C:\\Users\\sh\\/2018/August 13 2018/user_29607.csv"

我的目标是现在处理具有相同标识 ID 的 CSV 文件,例如以“22226.csv”结尾的文件

我的理想输出是具有单个 DF/表或具有相同 ID 的 CSV 文件的列表。然后我将在我编写的用于预处理数据的函数中运行该单个 DF/list。

我尝试使用 group_by() 和 unique() 但返回了 NA。

【问题讨论】:

    标签: r sorting dplyr unique plyr


    【解决方案1】:

    我们可以使用split 来创建一个list 的文件。分组基于通过删除字符派生的子字符串,直到_

    lst1 <- split(files, sub('.*_', '', files))
    

    [[提取元素

    lst1[["22232.csv"]]
    #[1] "C:\\Users\\sh\\/2018/April 17 2018/user_22232.csv"
    #[2] "C:\\Users\\sh\\/2018/April 2 2018/user_22232.csv" 
    #[3] "C:\\Users\\sh\\/2018/April 9 2018/user_22232.csv" 
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-06-24
      • 1970-01-01
      • 2016-06-06
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多