Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/list/4.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
将Excel文件名与dplyr::bind_rows.id关联_R_List_Dplyr - Fatal编程技术网

将Excel文件名与dplyr::bind_rows.id关联

将Excel文件名与dplyr::bind_rows.id关联,r,list,dplyr,R,List,Dplyr,我有大约50-60本Excel工作簿放在一个目录中。这些Excel文件大体上是一样的。有两个工作表,一个有说明,另一个在所有工作表中都有相同的整洁数据。列/变量A到J是我实际上想要提取的数据,但我愿意将其全部读入data.frame。数据输出到A到N列 我正在编写一个脚本来提取所有的原始数据,目前为止效果良好。我的部分脚本使用list.files的标准方法来构建文件名的“df”。然后,我使用“lappy”将所有excel文件读取到一个列表中。现在麻烦来了 我想使用dplyr::bind_行(但我

我有大约50-60本Excel工作簿放在一个目录中。这些Excel文件大体上是一样的。有两个工作表,一个有说明,另一个在所有工作表中都有相同的整洁数据。列/变量A到J是我实际上想要提取的数据,但我愿意将其全部读入data.frame。数据输出到A到N列

我正在编写一个脚本来提取所有的原始数据,目前为止效果良好。我的部分脚本使用list.files的标准方法来构建文件名的“df”。然后,我使用“lappy”将所有excel文件读取到一个列表中。现在麻烦来了

我想使用dplyr::bind_行(但我接受其他建议)将所有行绑定在一起,因为它们是相同的,并且共享相同的标题。这在我的概念证明中非常有效。当我在上面使用dplyr::bind_行的.id参数时,我得到1到j作为id变量,它对应于列表中的data.frame位置

files.list <- list.files(pattern='*.xlsx') # list file names in directory
df.list <- lapply(files.list, read_excel) # read excel into a list of dfs
df <- bind_rows(df.list, .id = "id") # bind the rows of the dfs together

files.list尝试使用
setNames
用文件名重命名数据帧列表;从
?bind_rows
:.id标签取自bind_rows()的命名参数。提供数据帧列表时,标签取自列表的名称。如果找不到名称,则使用数字序列


files.list请共享一些代码。你问的不是很清楚。你是如何得到那些目录位置,而不是文件名的?我没有投反对票。我会先留言,然后再投票。赢家鸡肉晚餐!这项工作做得很出色。它帮助我将文件名与它来自的数据关联起来。非常有助于保留审计跟踪。哇,谢谢你这篇有用的帖子。。。如果您也有兴趣跳过几行,比如在我的例子中,在每个文件的开头,您可以在read_excel之后添加“skip=7”,如
df.list
files.list <- list.files(pattern='*.xlsx')
df.list <- setNames(lapply(files.list, read_excel), files.list)
df <- bind_rows(df.list, .id = "id")