在我喜欢24 * .csv文件的文件夹中,它们具有相同的结构,我想创建一个文件。问题是并非所有数据框都以相同的方式读取,因为对于某些文件,sep参数是","以及其他人";"。 我应该使用什么方法?我想我可能会提出一个if语句。
答案 0 :(得分:2)
您可以检查数据框的第一行,看它是否有逗号或分号作为分隔符,并在调用ifelse语句之后:
L <- readLines('DataFrame', n = 1)
if (grepl(";", L)) read.csv2("DataFrame") else read.csv("DataFrame")
答案 1 :(得分:1)
以下简单的代码完成了工作,而且非常快。
library(dplyr)
library(data.table)
files <- list.files(path = "Ariel/Trips/", full.names = T)
f <- list()
for (i in 1:length(files)) {
f[[i]] <- fread(files[i], header = T, colClasses = c("factor", "factor", "factor", "factor",
"factor", "factor", "factor", "factor",
"factor", "factor", "factor", "factor",
"factor", "integer", "integer", "integer",
"factor", "numeric", "numeric", "integer",
"factor", "factor", "factor", "factor",
"factor", "factor", "factor", "factor"))
}
trip <- bind_rows(f)
fwrite(x = trip, file = "trip.csv", quote = T, na = NA, row.names = F)