read.csv 循环
read.csv in a loop
我有四个 csv 文件,我想用 for 循环输入它们。它们的大小都相同,仅文件名不同。现在我是这样做的:
Kleinheubach_GKD <- read.csv("/path_to_file/Kleinheubach.csv", skip= 10, header = T, nrows= 61, sep = ";")
Schwabelweis_GKD <- read.csv("/path_to_file/Schwabelweis.csv", skip= 10, header = T, nrows= 61, sep = ";")
Landau_GKD <- read.csv("/path_to_file/Landau.csv", skip= 10, header = T, nrows= 61, sep = ";")
Passau_GKD <- read.csv("/path_to_file/Passau.csv", skip= 10, header = T, nrows= 61, sep = ";")
这样可以,但不是很优雅,尤其是在处理大量文件时。
所以我想通过使用循环或导致相同结果的方法来完成。
这是我尝试过但没有成功的一种方法:
for (i in c("Kleinheubach", "Schwabelweis", "Landau", "Passau")) {
assign(paste0(i,"_GKD"), read.csv(paste("/path_to_file/", i,".csv_, skip= 10, header = T, nrows= 61, sep = ";"", sep="")))
}
我很确定问题与引号的错误使用有关。 paste
命令和文件路径都需要它们。我尝试了 ""
和 ''
的不同组合,但还没有找到适合这种情况的组合。
有人知道这种情况下的正确用法吗?
在循环中,paste
将是 paste0
,它应该被关闭 )
paste0("/path_to_file/", i,".csv")
这里是用file.path
构建完整文件名和lapply
读取数据的方法。注意read.csv
已经设置了header = TRUE
,有无需重复。
filenames <- c("Kleinheubach", "Schwabelweis", "Landau", "Passau")
file.path("/path/to/file", filenames)
#[1] "/path/to/file/Kleinheubach" "/path/to/file/Schwabelweis"
#[3] "/path/to/file/Landau" "/path/to/file/Passau"
df_list <- lapply(file.path("/path/to/file", filenames), read.csv, skip= 10, nrows= 61, sep = ";")
names(df_list) <- paste(filenames, "GKD", sep = "_")
为了让数据集在.GlobalEnv
,
list2env(df_list, envir = .GlobalEnv)
我有四个 csv 文件,我想用 for 循环输入它们。它们的大小都相同,仅文件名不同。现在我是这样做的:
Kleinheubach_GKD <- read.csv("/path_to_file/Kleinheubach.csv", skip= 10, header = T, nrows= 61, sep = ";")
Schwabelweis_GKD <- read.csv("/path_to_file/Schwabelweis.csv", skip= 10, header = T, nrows= 61, sep = ";")
Landau_GKD <- read.csv("/path_to_file/Landau.csv", skip= 10, header = T, nrows= 61, sep = ";")
Passau_GKD <- read.csv("/path_to_file/Passau.csv", skip= 10, header = T, nrows= 61, sep = ";")
这样可以,但不是很优雅,尤其是在处理大量文件时。
所以我想通过使用循环或导致相同结果的方法来完成。 这是我尝试过但没有成功的一种方法:
for (i in c("Kleinheubach", "Schwabelweis", "Landau", "Passau")) {
assign(paste0(i,"_GKD"), read.csv(paste("/path_to_file/", i,".csv_, skip= 10, header = T, nrows= 61, sep = ";"", sep="")))
}
我很确定问题与引号的错误使用有关。 paste
命令和文件路径都需要它们。我尝试了 ""
和 ''
的不同组合,但还没有找到适合这种情况的组合。
有人知道这种情况下的正确用法吗?
在循环中,paste
将是 paste0
,它应该被关闭 )
paste0("/path_to_file/", i,".csv")
这里是用file.path
构建完整文件名和lapply
读取数据的方法。注意read.csv
已经设置了header = TRUE
,有无需重复。
filenames <- c("Kleinheubach", "Schwabelweis", "Landau", "Passau")
file.path("/path/to/file", filenames)
#[1] "/path/to/file/Kleinheubach" "/path/to/file/Schwabelweis"
#[3] "/path/to/file/Landau" "/path/to/file/Passau"
df_list <- lapply(file.path("/path/to/file", filenames), read.csv, skip= 10, nrows= 61, sep = ";")
names(df_list) <- paste(filenames, "GKD", sep = "_")
为了让数据集在.GlobalEnv
,
list2env(df_list, envir = .GlobalEnv)