Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/r/76.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用模式将R中的数据帧与文件夹中的.csv数据帧绑定_R - Fatal编程技术网

使用模式将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+”)))
from
data.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