通过不在dplyr中工作的突变将_分组
我很有信心这是“操作员错误”,但如果有任何帮助,我将不胜感激。 我有一个(示例)数据帧通过不在dplyr中工作的突变将_分组,r,group-by,dplyr,R,Group By,Dplyr,我很有信心这是“操作员错误”,但如果有任何帮助,我将不胜感激。 我有一个(示例)数据帧 foo <- data.frame("School"=c(1,1,1,1,2,2,2,2,3,3,3,3), "Grade"=c(1,2,3,4,1,2,3,4,1,2,3,4), "e2005" = c(180,221,193,192,218,209,211,236,222,283,195,225),
foo <- data.frame("School"=c(1,1,1,1,2,2,2,2,3,3,3,3),
"Grade"=c(1,2,3,4,1,2,3,4,1,2,3,4),
"e2005" = c(180,221,193,192,218,209,211,236,222,283,195,225),
"e2006" = c(207,194,234,204,208,228,224,216,235,265,263,191))
预期的结果是:
School Grade 2005 2006 r2006
1 1 180 207 NA
1 2 221 194 1.077777778
1 3 193 234 1.058823529
1 4 192 204 1.056994819
2 1 218 208 NA
2 2 209 228 1.04587156
2 3 211 224 1.071770335
2 4 236 216 1.023696682
3 1 222 235 NA
3 2 283 265 1.193693694
3 3 195 263 0.929328622
3 4 225 191 0.979487179
但我得到的是:
School Grade 2005 2006 r2006
1 1 180 207 NA
1 2 221 194 1.077777778
1 3 193 234 1.058823529
1 4 192 204 1.056994819
2 1 218 208 1.083333333
2 2 209 228 1.04587156
2 3 211 224 1.071770335
2 4 236 216 1.023696682
3 1 222 235 0.995762712
3 2 283 265 1.193693694
3 3 195 263 0.929328622
3 4 225 191 0.979487179
我怀疑我没有正确处理滞后函数,或者我做了其他错误的事情
如蒙协助,将不胜感激。多谢各位
帕特里克
> sessionInfo()
R version 3.3.1 (2016-06-21)
Platform: x86_64-w64-mingw32/x64 (64-bit)
Running under: Windows 10 x64 (build 14393)
locale:
[1] LC_COLLATE=English_United States.1252 LC_CTYPE=English_United States.1252 LC_MONETARY=English_United States.1252 LC_NUMERIC=C LC_TIME=English_United States.1252
attached base packages:
[1] stats graphics grDevices utils datasets methods base
other attached packages:
[1] dplyr_0.5.0 RevoUtilsMath_8.0.3
有几件事。首先,在group\ U by的行中缺少
%%>%%
。其次,您不必在mutate中调用foo
。第三,可以使用列名在mutate中执行工作。你的代码应该是:foo%>%groupby(School)%%>%mutate(r2006=(e2006/lag(e2005))
mutate(foo,r2006=(e2006/lag(e2005))
。或者你可以把整个事情联系起来:foo%>%groupby(School)%>%mutate(r2006=(e2006/lag(e2005))
。无论哪种方式,都应该通过变量的无引号名称来引用变量。通过使用foo[,3]
和foo[,4]
您已经接触到了全球环境的foo
副本,而不是使用插入到带有数据参数的mutate
中的foo
。@eipi10非常感谢(双方)。这两种解决方案对我都有效,谢谢你向我指出我的错误。干杯,帕特里克
> sessionInfo()
R version 3.3.1 (2016-06-21)
Platform: x86_64-w64-mingw32/x64 (64-bit)
Running under: Windows 10 x64 (build 14393)
locale:
[1] LC_COLLATE=English_United States.1252 LC_CTYPE=English_United States.1252 LC_MONETARY=English_United States.1252 LC_NUMERIC=C LC_TIME=English_United States.1252
attached base packages:
[1] stats graphics grDevices utils datasets methods base
other attached packages:
[1] dplyr_0.5.0 RevoUtilsMath_8.0.3