通过标识符和R中的open / process子集组织csv

问题描述 投票:0回答:1

我有以下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个回答
1
投票

我们可以使用split创建文件list。分组基于通过删除字符直到_

得出的子字符串。
lst1 <- split(files, sub('.*_', '', files))
© www.soinside.com 2019 - 2024. All rights reserved.