dplyr
可以在 data.frame
上执行链式 summarise
操作吗?
我的data.frame有以下结构:
data_df = tbl_df(data)
data_df %.%
group_by(col_1) %.%
summarise(number_of= length(col_2)) %.%
summarise(sum_of = sum(col_3))
这会导致RStudio遇到 fatal error - R Session Aborted
消息
通常使用 plyr
我会毫无问题地包含这些 summarise
函数 .
UPDATE
数据是here.
代码是:
library(dplyr)
orth <- read.csv('orth0106.csv')
orth_df = tbl_df(orth)
orth_df %.%
group_by(Hospital) %.%
summarise(Procs = length(Procedure)) %.%
summarise(SSIs = sum(SSI))
1 回答
我可以在运行RStudio 0.97.551的Windows 7机器上重现该错误
这可能是因为你正在调用
summarise
并将其链接到那些不存在的东西上 . 您可以summarise
使用2个不同的列,就像我在这里所做的那样 .在任何情况下,这似乎是一个RStudio或
dplyr
错误 . 我会向哈德利提出一个问题,因为他可能会关心这两种方式 . https://github.com/hadley/dplyr/issuesEDIT 这(你的第一个电话)也会导致rgui(windows)和终端崩溃:
这表明Hadley和Romain想要了解的问题是_2848333 .
为了得到我的第一点,我们运行:
%.% summarise(SSIs = sum(SSI))
应该在哪里找到SSI
?所以你认为发生的链接失败了 . 据我所知
%.%
与ggplot2
的工作方式不完全相似但相似 . 在ggplot2
中,一旦您在初始映射中传递数据,您可以稍后访问它 . 这里% . %似乎修改 grab 左块并对其进行操作如下:所以你 grab 了:
当你使用
%.% summarise(SSIs = sum(SSI))
并且没有SSI
时 . 所以想到的类比是serial vs. parallel wiring Christmas lights .%.% = serial
ggplot() + = parallel
. 这是一个非程序员's understanding of things and the R gurus may come and tell me I' m愚蠢,但现在_2848348已经得到了 .