For example, I have this data frame (df):
Color X1 X2 X3 X4
Red 1 1 0 2
Blue 0 NA 4 1
Red 3 4 3 1
Green 2 2 1 0
我想创建一个函数,按组(即按“颜色”)计算“X2”中非
NA
的数量。我希望将此函数的输出放在名为newdf的新数据框中。以下是我想要的输出:Color X2
Red 2
Blue NA
Green 1
到目前为止,我有这段代码:
Question <- function(Color){
Result <-
rowsum((df[c("X2")] > 0) + 0, df[["X2"]], na.rm = TRUE)
rowSums(Result)[[Color]]
}
Question("Red")
该函数的输出结果只是
Question("Red")= 2
,我希望能够得到所有颜色的结果并存储在数据框(newdf)中。有谁能帮忙实现吗?谢谢!
tapply(ifelse(is.na(df$X2), NA, 1), df$Color, FUN=sum)
- jogorowsum:
rowsum(as.numeric(!is.na(dt$X2)), dt$Color)
- user20650