R-读一列,并使用qpcr cbind

时间:2018-11-06 15:51:51

标签: r data.table 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 个答案:

答案 0 :(得分:0)

在使用typeof()进行调查之后,我需要通过添加以下行将fread生成的列表转换为数字,从而得出结果。

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

然后有效