为什么`filter`在`lapply`中以这种方式行事

时间:2018-03-17 04:13:56

标签: r dplyr lapply

我在filterlapply获得了意想不到的结果,但我还没有想到。我试图根据时间戳将数据帧切割成数据帧列表 - 每个唯一时间戳一个数据帧。

df <- data.frame( x=rep("a", 3), ts=c(1518904061180, 1518904061180, 1518904087257))
out <- lapply( unique(df$ts), function(x, z){  
  filter(z, ts==x) }, z=df)
out
[[1]]
[1] x  ts
<0 rows> (or 0-length row.names)

[[2]]
[1] x  ts
<0 rows> (or 0-length row.names)

我测试了一些东西,但看不出问题。例如。这些表现如预期:

out <- lapply( unique(df$ts), function(x, z){  
  print(x==1518904061180);
  filter(z, ts==1518904061180) }, z=df)
out

a <- 1518904061180
filter(df, ts==a)

0 个答案:

没有答案