R- чтение одного столбца и использование qpcr cbind - PullRequest
0 голосов
/ 06 ноября 2018

Итак, я пытаюсь прочитать несколько 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 Ответ

0 голосов
/ 06 ноября 2018

Оказывается после исследования с использованием typeof (), что мне нужно было преобразовать список, сгенерированный fread, в число, добавив следующую строку.

data <- as.numeric(unlist(data))

Это тогда сработало

...