这个问题非常简单,甚至可能是愚蠢的,但我在谷歌上找不到答案。我正在尝试使用以下命令将.txt文件读入R:
data <- read.csv("perm2test.txt", sep="\t", header=FALSE, row.names=1, col.names=paste("V", seq_len(max(count.fields("perm2test.txt", sep="\t"))), sep=""), fill=TRUE)
我有col.names命令的原因是因为.txt文件中的每一行都有不同的观察数。我已经在一个小得多的文件上测试了它并且它可以工作。但是,当我在我的实际数据集(只有48MB)上运行它时,我不确定它是否正常工作...我不确定的原因是因为我没有收到错误消息,但它有此时已经“运行”超过24小时(只是上面的read.csv命令)。它是否有可能内存不足而且它不会输出警告?
我环顾四周,我知道有人说有些功能可以减小尺寸并删除不需要的线条,但说实话我不认为这个文件太大了,不幸的是我确实需要文件中的每一行......(它实际上只有70行,但有些行包含多达100k条目,而其他行可能只有100条)。有什么想法发生了什么?
答案 0 :(得分:0)
显然未经测试但应该给你一些代码来修改:
datL <- readLines("perm2test.txt") # one line per group
# may want to exclude some lines but question is unclear
listL <- lapply(datL, function(L) read.delim(text=L, colCasses="numeric") )
# This is a list of values by group
dfL <- data.frame( vals = unlist(listL),
# Now build a grouping vector that is associated with each bundle of values
groups= rep( LETTERS[1:length(listL)] ,
sapply(listL, length) )
# Might have been able to do that last maneuver with `stack`.
library(lattice)
bwplot( vals ~ groups, data=dfL)