在 R 中按标识符和 open/process 子集组织 csv
Organize csv by identifier and open/process subset in R
我有以下 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”结尾的文件。=14=]
我的理想输出是具有单个 DF/table 或具有相同 ID 的 CSV 文件的列表。然后我将 运行 在我编写的函数中 DF/list 预处理数据。
我试过使用 group_by() 和 unique() 但返回了 NA。
我们可以使用 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"
我有以下 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”结尾的文件。=14=]
我的理想输出是具有单个 DF/table 或具有相同 ID 的 CSV 文件的列表。然后我将 运行 在我编写的函数中 DF/list 预处理数据。
我试过使用 group_by() 和 unique() 但返回了 NA。
我们可以使用 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"