将逗号分隔的长行读取到 R 中的列

Reading a long comma separated line to a column in R

我有一个很长的逗号分隔字符串,我想在 R 中将其读取为列向量。 我试图将其读作 table,想知道我是否可以将其转置,但读入 table 需要很长时间。

col = read.table("filename.csv", sep = ",", header=FALSE)
colT = t(col)

字符串很大,有 270 万个条目,用逗号分隔。因此它不能在文本编辑器中处理,并且试图用 '\n' 替换 ',' 是徒劳的。我可以在 R 中做到这一点吗?

?scan 这种事情会很快。

tmp <- paste(paste0(letters,1:2.7e6),collapse=",")
system.time(scan(text=tmp, what=character(1), sep=","))
#Read 2700000 items
#   user  system elapsed 
#   1.15    0.00    1.16 

我们可以使用fread

library(data.table)
fread("filename.csv", header=FALSE)

tmp <- paste(paste0(letters,1:2.7e6),collapse="\n")
system.time(fread(tmp, header=FALSE))
#  user  system elapsed 
#  0.87    0.00    0.88 

如果 OP 的数据有 , 而不是 \n,我们可以使用 gsub 作为@thelatemail 提到的

fread(gsub(",","\n",tmp),header=FALSE)