我对R很新,并试图找出如何使用向量来读取多个csv文件。我想创建一个包含我想要读入的文件的向量,一个带有我将存储数据的数据帧名称的向量,以及一个使用这两个文件来处理多个文件的函数。这是我尝试的代码:
filevar<-c("study_data_raw.csv","study_data_cleaned.csv")
dfs<-c("study_data_raw","study_data_cleaned")
myfunc<-function(x,y) {
y<- read.csv(file.path("C:/study_data",x))
}
myfunc(filevar,dfs)
我收到以下错误&#34;文件错误(文件,&#34; rt&#34;):无效&#39;描述&#39;参数&#34;
我未经训练的眼睛无法找到合乎逻辑的问题,并欢迎更有经验的程序员提供任何指导。
答案 0 :(得分:0)
虽然我不想告诉R新手使用循环,但这是你最好的选择。
filevar<-c("study_data_raw.csv","study_data_cleaned.csv")
fileData <- list()
for(fileNum in 1:length(fileVar))
{
fileData[[fileNum]] <- read.csv(file = paste0("C:/study_data/",filevar[fileNum]))
}
(请注意,apply函数中包含循环,因此它们不会更快,并且它们的可读性更低/更难调试)
我建议使用此方法,因为它允许您以数字方式引用文件。如果您希望将它们命名,请执行此操作
filevar<-c("study_data_raw.csv","study_data_cleaned.csv")
dfs<-c("study_data_raw","study_data_cleaned")
for(fileNum in 1:length(fileVar))
{
assign(dfs[fileNum],read.csv(file = paste0("C:/study_data/",filevar[fileNum])))
}
奖励积分: 同样对于任何R用户,我建议开始使用管道,因为它可以进一步提高可读性。
library(magrittr) # or install.packages("magrittr") first
library(dplyr) # or install.packages("dplyr") first
filevar<-c("study_data_raw.csv","study_data_cleaned.csv")
dfs<-c("study_data_raw","study_data_cleaned")
for(fileNum in 1:length(fileVar))
{
paste0("C:/study_data/",filevar[fileNum]) %>%
readcsv() %>%
assign(dfs[fileNum])
}