R- чтение одного столбца и использование qpcr cbind
Поэтому я пытаюсь прочитать несколько CSV-файлов, взять их первый столбец и создать новый файл. Мне удалось использовать qpcR и data.table, используя следующий код:
FileNames <- dir(pattern = "*.csv")
x <- integer()
for (FileName in FileNames) {
data <- read.csv(file = FileName, header=FALSE, skip=1)
y <- data[,1]
x<-qpcR:::cbind.na(x, y)
rm(data)
}
write.csv(x, file = 'test.csv')
Это работает нормально, однако я обнаружил, что могу читать только первый столбец моих данных, используя библиотеку data.table.
x <- integer()
for (FileName in FileNames) {
data <- fread(FileName,select=1,skip=1, header=FALSE)
y <- data[1:nrow(data),]
x<-qpcR:::cbind.na(x, y)
rm(data)
}
write.csv(x, file = 'test.csv')
Однако это, кажется, рассматривает y как значение данных или целое число, которое выдает ошибку:
Ошибка в data.table::data.table(...): элемент 2 не имеет длины. Укажите хотя бы один элемент (например, NA, NA_integer_ и т. Д.), Который нужно повторить, чтобы соответствовать 11 строкам в самом длинном столбце. Или все столбцы могут иметь длину 0 для вставки строк в.
Любая помощь в этом была бы большой благодарностью.
1 ответ
После исследования с использованием typeof() выяснилось, что мне нужно было преобразовать список, сгенерированный fread, в число, добавив следующую строку.
data <- as.numeric(unlist(data))
Это потом сработало