我认为这是一个简单的语法问题,但它弄乱了我的大脑:
data <- data.frame(y=c(1,1,0,NA,1,1),
iso3=c(rep("USA",3),rep("RUS",3)),
year=rep(1999:2001,2))
我只是想逐年总结一下:
summarized <- by(data$y,data$year,sum)
但不会像上面那样在1999年丢失信息。我认为这可以通过使用sum(,na.rm = TRUE)
来完成,但如果我在上面的代码中尝试这样做,sum想要一个参数。如何更改sum
的规范并仍然在by
内使用它作为应用于by
参数的函数?我非常感谢任何提示或如何使用!
p.s。:虽然我对任何解决方案表示感谢,但如果你能给我一个特定于“包装函数”的解决方案,那就太棒了。上面的问题,因为它不是我第一次遇到这个问题,我想理解它。
答案 0 :(得分:3)
尝试
by(data$y,data$year,sum, na.rm=TRUE)
如果我们使用dplyr
library(dplyr)
data %>%
group_by(year) %>%
summarise(Sum= sum(y, na.rm=TRUE))