data.table第一次不返回其内容

时间:2018-02-25 21:18:26

标签: r data.table

很久以前所有版本的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,但我对旧版本的行为却相同。

它不严重,但它很奇怪,可能与某种内存泄漏有关?

0 个答案:

没有答案