从R中的多个csv文件中读取数据

时间:2018-05-31 20:23:22

标签: r read.csv

我能够创建一个允许我从csv文件中读取数据并计算特定列的平均值的函数。

我现在的问题是,当我尝试使用rbind组合来自多个csv文件的数据以计算均值时,它会返回图片中的错误消息。请告诉我我错过了什么以及我哪里出错了。

enter image description here

2 个答案:

答案 0 :(得分:0)

请参阅评论可重现的样本数据和代码。如果不确定,请参阅how to provide a minimal reproducible example/attempt

除此之外,我建议做这样的事情:

# Filenames
id <- 1:332;
g <- paste(sprintf("%03d", id), "csv", sep = ".")

# Read CSV files into list of data.frames and row-bind into single data.frame
library(tidyverse);
df <- bind_rows(lapply(g, read_csv), .id = "source");

如果您的CSV文件都具有相同的结构,则会创建一个data.frame,其中包含来自所有332个CSV文件的条目;附加列source跟踪每个条目的来源(即它来自哪个文件)。

答案 1 :(得分:0)

有很多方法可以将来自多个CSV的数据合并到一个数据帧中。这里有一些例子。我要让您自己取平均值(做到这一点应该很容易)。

setwd("C:/your_path_here")
fnames <- list.files()
csv <- lapply(fnames, read.csv)
result <- do.call(rbind, csv)

******** ******** ******** ******** ******** ******* * ******** ******** ********

filedir <- setwd("C:/your_path_here")
file_names <- dir(filedir)
your_data_frame <- do.call(rbind,lapply(file_names,read.csv))

******** ******** ******** ******** ******** ******* * ******** ******** ********

filedir <- setwd("C:/your_path_here")
file_names <- dir(filedir)
your_data_frame <- do.call(rbind, lapply(file_names, read.csv, skip = 1, header = FALSE))

******** ******** ******** ******** ******** ******* * ******** ******** ********

filedir <- setwd("C:/your_path_here")
file_names <- dir(filedir)
your_data_frame <- do.call(rbind, lapply(file_names, read.csv, header = FALSE))

******** ******** ******** ******** ******** ******* * ******** ******** ********

temp <- setwd("C:/your_path_here")
temp = list.files(pattern="*.csv")
myfiles = lapply(temp, read.delim)