R 读取并重新绑定多个csv文件
我有一系列csv文件(每个anum一个),具有相同的列标题和不同的行数。最初我是在读它们,然后像这样把它们合并在一起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
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))