Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/qt/6.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_Csv_Data Binding_Merge_Dataframe - Fatal编程技术网

R 读取并重新绑定多个csv文件

R 读取并重新绑定多个csv文件,r,csv,data-binding,merge,dataframe,R,Csv,Data Binding,Merge,Dataframe,我有一系列csv文件(每个anum一个),具有相同的列标题和不同的行数。最初我是在读它们,然后像这样把它们合并在一起 setwd <- ("N:/Ring data by cruise/Shetland") LengthHeight2013 <- read.csv("N:/Ring data by cruise/Shetland/R_0113A_S2013_WD.csv",sep=",",header=TRUE) LengthHeight2012 <- read.cs

我有一系列csv文件(每个anum一个),具有相同的列标题和不同的行数。最初我是在读它们,然后像这样把它们合并在一起

setwd <- ("N:/Ring data by cruise/Shetland")
LengthHeight2013 <- read.csv("N:/Ring data by      cruise/Shetland/R_0113A_S2013_WD.csv",sep=",",header=TRUE)
LengthHeight2012 <- read.csv("N:/Ring data by cruise/Shetland/R_0212A_S2012_WD.csv",sep=",",header=TRUE)
LengthHeight2011 <- read.csv("N:/Ring data by cruise/Shetland/R_0211A_S2011_WOD.csv",sep=",",header=TRUE)
LengthHeight2010 <- read.csv("N:/Ring data by cruise/Shetland/R_0310A_S2010_WOD.csv",sep=",",header=TRUE)
LengthHeight2009 <- read.csv("N:/Ring data by cruise/Shetland/R_0309A_S2009_WOD.csv",sep=",",header=TRUE)

LengthHeight <- merge(LengthHeight2013,LengthHeight2012,all=TRUE)
LengthHeight <- merge(LengthHeight,LengthHeight2011,all=TRUE)
LengthHeight <- merge(LengthHeight,LengthHeight2010,all=TRUE)
LengthHeight <- merge(LengthHeight,LengthHeight2009,all=TRUE)
查找文件(
list.files
)并在循环中读取文件(
lappy
),然后调用(
do.call
)行绑定(
rbind
)将所有文件按行放在一起

myMergedData <- 
  do.call(rbind,
          lapply(list.files(path = "N:/Ring data by cruise"), read.csv))

myMergedData如果您想提高速度,请尝试以下方法:

require(data.table) ## 1.9.2 or 1.9.3
ans = rbindlist(lapply(filenames, fread))

没有足够的rep来评论,但是要回答Rafael Santos,您可以使用这里的代码将参数添加到上面答案中的lapply

你真的需要合并吗?关于do.call(rbind,datalist)呢?
sep=“,”,header=TRUE
read.csv()
的默认值。我有一个类似的问题并使用:zoneB=list.files(pattern=“*.csv”)用于(i in 1:length(zoneB))赋值(zoneB[i],read.csv(zoneB[i]),然后ZB=lappy(zoneB,read_csv)%>%bind_rows()。。。。。。。但是我想知道是否有一种方法可以排除列表中特定的.csv文件?如果我需要将参数传递给Lappy上的函数,该怎么办?例如,我想用read.table代替read.csv,并在上面设置一些选项。嘿,zx8754-谢谢你!有没有办法在文件夹中的每个文档上保留一个id?@MelaniaCB当然有可能,请针对本文提出新的问题,并提供示例输入和预期输出。
library(vroom)
myMergedData <- vroom(files)
require(data.table) ## 1.9.2 or 1.9.3
ans = rbindlist(lapply(filenames, fread))