我的文件具有命名约定和所有相同的列名:
ABC_file_name_25
ABC_file_name_50
ABC_file_name_100
我希望每个df
的列名都代表它们来自哪个文件。所以现在所有df
都有:
col1 col2 col3
我希望他们成为:
DF1
col1_ABC_25 col2_ABC_25 col3_ABC_25
df2
col1_ABC_50 col2_ABC_50 col3_ABC_50
DF3
col1_ABC_100 col2_ABC_100 col3_ABC_100
到目前为止,我有这个,但我不确定如何将名称应用于列:
library(tools)
# Working Directory
setwd("C:/.../Files")
# Get a list of files to read in
temp = list.files(pattern="*.csv")
# Remove .csv
file_name = file_path_sans_ext(temp)
# Get the start of filename prefix
prefix = sub("_.*", "", file_name[1:1])
# Get the suffix number
suffix = sub(".*_", "", file_name)
# Name each df by its filename
for (i in 1:length(temp)) assign(file_path_sans_ext(temp[i]), read.csv(temp[i]))
# Place all df into a list using their prefix
list <- lapply(ls(pattern=prefix), function(x) get(x))
答案 0 :(得分:1)
这会将每个文件作为数据框加载,根据需要更改列名,然后将它们收集到列表中。
end