У меня есть много файлов CSV в трех отдельных папках следующим образом:Как обрабатывать несколько файлов CSV в R
folder1
a1_0023.csv
a2_0034.csv
a3_6163.csv
...
(100 files)
folder2
b1_0023.csv
b2_0034.csv
b3_6163.csv
...
(100 files)
folder3
c1_0023.csv
c2_0034.csv
c3_6163.csv
...
(100 files)
И у меня есть текстовый файл, в котором перечислены последние четыре цифры:
theLastFourDigits.txt
0023
0034
6163
...
(100 lines)
Для 0023
файлов, я делаю простую работу в R:
a <- read.table("D:/folder1/a1_0023.csv", header=FALSE, sep=",")
a <- as.matrix(a)
b <- read.table("D:/folder2/b1_0023.csv", header=FALSE, sep=",")
b <- as.matrix(b)
c <- read.table("D:/folder3/c1_0023.csv", header=FALSE, sep=",")
c <- as.matrix(c)
# Initiate the column vector that contains the results
myanswer <- matrix(0, nrow=100, ncol=1)
# Do a simple job, and store the result in myanswer column
myanswer[1] = nrow(a)*nrow(b)/nrow(c)
у меня есть два вопроса: (1) Как мы можем перебирать это процесс для всего 100 цифр? (2) Как мы можем выполнять несколько заданий, если у меня нет файла списка theLastFourDigits.txt
?
EDIT:
Я пытался что-то вроде следующего:
setwd("D:/folder1/")
filelist1 <- Sys.glob("*.csv")
setwd("D:/folder2/")
filelist2 <- Sys.glob("*.csv")
setwd("D:/folder3/")
filelist3 <- Sys.glob("*.csv")
for (i in 1:100) {
setwd("D:/folder1/")
a <- read.csv(filelist1[i], header=FALSE, sep=",")
a <- as.matrix(a)
setwd("D:/folder2/")
b <- read.csv(filelist2[i], header=FALSE, sep=",")
b <- as.matrix(b)
setwd("D:/folder3/")
c <- read.csv(filelist3[i], header=FALSE, sep=",")
c <- as.matrix(c)
nrow(a)*nrow(b)/nrow(c)
}
И сообщение об ошибке, как:
Error in read.table(file = file, header = header, sep = sep, quote = quote, :
no lines available in input
3 stop("no lines available in input")
2 read.table(file = file, header = header, sep = sep, quote = quote,
dec = dec, fill = fill, comment.char = comment.char, ...)
1 read.csv(filelist1[i], header = FALSE, sep = ",")
Что я здесь отсутствует?
Я получил сообщение об ошибке: Ошибку в read.table (файл = файл, заголовок = заголовке, Сентябрь = Сентябрь, цитата = цитата:. Нет доступных линий на входе Я считаю, что что-то пойдет не так в 'чтения csv' в цикле for. –
Итак, я предполагаю, что вы заменили строку read.csv() в моем коде строкой с кодом read.table(). Какова была строка кода, которую вы отправили, когда вы получили эта ошибка? –
Я не изменил ваш код. –