很久以前所有版本的data.table我都尝试过我认为是一个小bug。 有时当我创建data.table并尝试显示它的内容时,它不会显示任何结果或错误。
我需要执行两次名称才能显示任何内容。 有时候甚至叫两次名字还不够。
它发生在具有不同R版本和不同data.table版本的不同计算机上。
是否有人注意到同样的问题?
它并不严重,但它可能表明记忆中有问题。 我现在无法给出一个可重复的小例子。
以下是产生此行为的简单代码示例。
使用此内容创建名为prueba.csv的csv文件。
numb, first,second
1,aaa,2009-12-17
1,bbb,2009-01-28
1,www,2019-12-02
1,ddd,1999-07-01
2,aaa,1999-08-28
2,bbb,2009-05-30
3,bbb,2009-06-14
3,ccc,2009-05-30
3,aaa,1999-05-19
4,ddd,2009-03-24
4,ddd,2009-07-17
5,www,2009-02-02
6,ccc,1999-06-28
6,aaa,1979-07-01
7,bbb,2009-09-09
7,ddd,2009-07-18
8,aaa,2009-03-28
8,ccc,2009-06-08
8,ddd,2009-03-01
9,www,1999-07-17
9,ddd,2009-02-14
现在执行以下行:
lectura <- function() {
todo <- fread("prueba.csv")
todo[,other:=ifelse(any(first=="aaa"),.SD[first=="aaa",first],"2020-10-31"),by=numb]
return(todo)
}
ttt <- lectura()
现在运行
ttt
您会注意到它没有像我期望的那样显示其内容。 为什么呢?
我需要再次运行它。
ttt
现在只显示表格
1,aaa,2009-12-17
1,bbb,2009-01-28
1,www,2019-12-02
...
我使用的是R 3.4.3,Windows 10 x64和data.table 1.10.5,但我对旧版本的行为却相同。
它不严重,但它很奇怪,可能与某种内存泄漏有关?