小编FBC*_*FBC的帖子

使用包data.table中的fread一次读取块

我正在尝试使用fread包中的函数输入一个大的制表符分隔文件(大约2GB)data.table.但是,因为它太大了,所以它并不完全适合内存.我试图通过使用skipnrow参数来输入它,例如:

chunk.size = 1e6
done = FALSE
chunk = 1
while(!done)
{
    temp = fread("myfile.txt",skip=(chunk-1)*chunk.size,nrow=chunk.size-1)
    #do something to temp
    chunk = chunk + 1
    if(nrow(temp)<2) done = TRUE
}
Run Code Online (Sandbox Code Playgroud)

在上面的例子中,我一次读取100万行,对它们进行计算,然后得到下一百万行等.这段代码的问题是在检索fread到每个块后,需要开始扫描文件从一开始就经过每次循环迭代后,skip增加了一百万.结果,在每个块之后,fread实际到达下一个块需要更长和更长时间,这使得效率非常低.

有没有办法告诉你fread暂停每一个说100万行,然后继续阅读从那一点开始而不必重新开始?任何解决方案,还是应该是新功能请求?

r fread data.table

26
推荐指数
4
解决办法
5546
查看次数

用值替换R data.table中的所有缺失值

如果你有一个缺少值的R data.table,你如何用值0替换所有这些值?例如

aa = data.table(V1=1:10,V2=c(1,2,2,3,3,3,4,4,4,4))
bb = data.table(V1=3:6,X=letters[1:4])
setkey(aa,V1)
setkey(bb,V1)
tt = bb[aa]

    V1  X V2
 1:  1 NA  1
 2:  2 NA  2
 3:  3  a  2
 4:  4  b  3
 5:  5  c  3
 6:  6  d  3
 7:  7 NA  4
 8:  8 NA  4
 9:  9 NA  4
10: 10 NA  4
Run Code Online (Sandbox Code Playgroud)

有没有办法在一行中做到这一点?如果它只是一个矩阵,你可以这样做:

tt[is.na(tt)] = 0
Run Code Online (Sandbox Code Playgroud)

r data.table

20
推荐指数
2
解决办法
2万
查看次数

在R中创建高分辨率数字

这是这样认为的驾驶我疯狂的一个基本问题.在R中生成图形时,它在屏幕上看起来很棒.但是当我尝试使用png(),tiff()等直接将它生成到文件上时,通过将分辨率设置为300,将宽度和高度设置为适合日记纸的合理值,有两个问题:

  1. 所有线条都做得超厚
  2. 所有字母都是巨大的字体.

这真的很烦人,我试过玩点数选项,它有助于使字体更小,但线宽仍然厚实和丑陋.你能否告诉你R中出了什么问题以及如何解决这个问题?我环顾四周,大多数解决方案涉及使用其他图像处理软件.我宁愿弄清楚为什么R在提高分辨率时会这样做以及为什么它会让数字如此难看.这是一个例子:

png(file="test.png",width=5,height=5,units="cm",res=300)
plot(rnorm(1000),rnorm(1000),xlab="some text")
dev.off()
Run Code Online (Sandbox Code Playgroud)

谢谢!

r

12
推荐指数
1
解决办法
7762
查看次数

使用RCurl获取R矢量中的网站目录列表

我正在尝试获取网站目录中的文件列表.有没有办法类似于本地目录列表的dir()或list.files()命令?我可以使用RCurl连接到网站(我需要它,因为我需要通过HTTPS连接SSL):

library(RCurl)    
text=getURL(*some https website*
,ssl.verifypeer = FALSE
,dirlistonly = TRUE)
Run Code Online (Sandbox Code Playgroud)

但这会创建一个HTML文件,其中包含文件列表的图像,超链接等,但我只需要一个R矢量文件,就像你用dir()获得的那样.这可能吗?或者我是否必须进行HTML解析才能提取文件名?听起来像是一个简单问题的复杂方法.

谢谢,

编辑:如果你可以使用http://hgdownload.cse.ucsc.edu/goldenPath/hg19/encodeDCC/wgEncodeGencodeV7/,那么你会明白我的意思.

r rcurl

5
推荐指数
2
解决办法
4849
查看次数

标签 统计

r ×4

data.table ×2

fread ×1

rcurl ×1