我能够创建一个允许我从csv文件中读取数据并计算特定列的平均值的函数。
我现在的问题是,当我尝试使用rbind组合来自多个csv文件的数据以计算均值时,它会返回图片中的错误消息。请告诉我我错过了什么以及我哪里出错了。
答案 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)