我有一个非常大的数据文件,由Hadoop转储,超过300G。我别无选择,只能抽样。
fileName <-file(".\file.dat")
data <- sqldf("select * from fileName order by random(*) limit 1000")
完成此操作后,我发现数据是一个数据框对象,有1000个obs,1个变量。
没有列名或与此相关的任何内容,如何将数据对象分成列?现在,似乎列被标签分隔了。
示例输入行是
GxWdY-ixdsiqhy5P9Z-5Ug== 20140405 1896 329 3 0 1 NULL 2 6 2 140x140 476435 1 23 3199.0 3199.0 0.0 403 403
我怀疑它应该是lapply(data, split(sep = "\t"))
或其他什么?
答案 0 :(得分:1)
怎么样:
data <- data.frame(rep("GxWdY-ixdsiqhy5P9Z-5Ug== 20140405 1896 329 3 0 1 NULL 2 6 2 140x140 476435 1 23 3199.0 3199.0 0.0 403 403",2))
从一列数据帧转换为字符向量:
datstr <- as.character(data[[1]])
作为单独的列阅读:
read.table(textConnection(datstr),sep="\t")
当我复制粘贴你的例子时,标签丢失了,但如果你真的在你的输出中有它们应该工作。如果你的任何字符列中没有空格,那么你甚至不需要sep
参数 - read.table
默认使用通用空格分隔。 / p>