按文件名将多个.csv文件导入R
我有一个包含332.csv文件的文件夹,从001.csv到332.csv。它们有相同的标题。 如果我想从文件中计算对象的平均值,它的名称是从a.csv到b.csv。如何将文件a、a+1、a+2、…b中的数据合并到数据帧中? 示例:输入5:130;按文件名将多个.csv文件导入R,r,csv,R,Csv,我有一个包含332.csv文件的文件夹,从001.csv到332.csv。它们有相同的标题。 如果我想从文件中计算对象的平均值,它的名称是从a.csv到b.csv。如何将文件a、a+1、a+2、…b中的数据合并到数据帧中? 示例:输入5:130; 过程:从文件005.csv、006.csv、007.csv、…、130.csv中读取数据,然后将它们合并到一个数据框中。假设您将所有.csv文件都放在一个文件夹中,以下功能将为您提供所需的: # defining the function merged
过程:从文件005.csv、006.csv、007.csv、…、130.csv中读取数据,然后将它们合并到一个数据框中。假设您将所有.csv文件都放在一个文件夹中,以下功能将为您提供所需的:
# defining the function
merged <- function(id = 1:332) {
df <- data.frame()
for(i in 1:length(id)){
add <- read.csv(as.character(paste0(sprintf("%03s",id[i]),".csv")))
df <- rbind(df,add)
}
colnames(df) <- c(..specify the colnames in here..)
assign("dat", df, envir = .GlobalEnv)
}
# getting your merged df
merged(5:130)
合并的数据帧现在位于数据帧dat中我想这个问题在您所说的数据帧是什么意思之前已经得到了回答?只需读取x csv文件并使用cbind连接它们就足够了吗?如果是这样,您可以编写一个简单的循环。您可以将每个文件导入数组的第三维空间并从那里开始。在我看来,对于回答这个问题的另一个问题,没有完整的答案。因此,我认为将这一问题标记为重复问题是不正确的。有些地方出了问题。实际上,paste0sprintf%03s,id[i],.csv只返回id[i].csv。例如,paste0sprintf%03s,1,.csv返回1.csv这很奇怪。我在Coursera课程“数据分析计算/R编程”中的csv文件集上测试了这一点,效果非常好。要使此功能正常工作,必须将工作目录设置为所有csv文件所在的目录。之后,您可以使用该函数。