使用模式将R中的数据帧与文件夹中的.csv数据帧绑定
我知道有几种方法可以将文件夹中的文件绑定到一个大数据框中(如使用模式将R中的数据帧与文件夹中的.csv数据帧绑定,r,R,我知道有几种方法可以将文件夹中的文件绑定到一个大数据框中(如rbindlist(mget(ls(pattern=“^df\\\.\\d+”)))fromdata.tablepackage)。这不是我在这里打算做的。我需要将R环境中的数据帧与.csv文件文件夹中的数据帧绑定。R dfs和.csv dfs具有相同的结构(对于rbind.fill)来说非常相似) 数据帧名称具有前4个字符的指示符。因此,在R数据中,framse如下所示:DF01,DF02,DF03。在folder.csv中的注释如下:
rbindlist(mget(ls(pattern=“^df\\\.\\d+”)))
fromdata.table
package)。这不是我在这里打算做的。我需要将R环境中的数据帧与.csv文件文件夹中的数据帧绑定。R dfs和.csv dfs具有相同的结构(对于rbind.fill
)来说非常相似)
数据帧名称具有前4个字符的指示符。因此,在R数据中,framse如下所示:DF01
,DF02
,DF03
。在folder.csv中的注释如下:DF01_a
,DF01_B
<代码>DF02_a,DF02_b
<代码>DF03_a,DF03_b
正如你们所看到的,对于R中的每个数据帧,我将添加多个.csv,所以我发现最简单的方法是使用模式绑定它们。例如,
pattern=substr(df.list,1,4)
应该根据前4个字符绑定dfs 可能是这样的:
DF01 = data.frame(a=c(1,2,3),b=c(3,2,1))
DF02 = data.frame(a=c(1,2,3),b=c(3,2,1))
my_dfs = ls()[grepl('DF',ls())]
library(data.table)
for (i in 1:length(my_dfs))
{
thisdf <- get(my_dfs[i])
files_to_add <- list.files()[grepl(my_dfs[i],list.files())]
dfs_to_add <- lapply(files_to_add,fread)
dfs_to_add[[length(dfs_to_add)+1]]= thisdf
assign(my_dfs[i],rbindlist(dfs_to_add,fill=T))
}
希望这有帮助
> DF01
a b
1: 4 6
2: 5 7
3: 4 6
4: 5 7
5: 1 3
6: 2 2
7: 3 1
> DF02
a b
1: 4 6
2: 5 7
3: 1 3
4: 2 2
5: 3 1