Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/fsharp/3.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
按文件名将多个.csv文件导入R_R_Csv - Fatal编程技术网

按文件名将多个.csv文件导入R

按文件名将多个.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

我有一个包含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 <- 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文件所在的目录。之后,您可以使用该函数。