gpt4 book ai didi

r - 按组计算非 NA 值的数量

转载 作者:行者123 更新时间:2023-12-04 09:37:50 24 4
gpt4 key购买 nike

例如,我有这个数据框(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
我想创建一个函数来计算非 NA 的数量。 s 在“X2”中按组(即按“颜色”)。我想在名为 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) 中获取所有颜色的结果。有人能帮忙吗?谢谢!

最佳答案

或者,如果您想使用 data.table:

library(data.table)

dt[,sum(!is.na(X2)),by=.(Color)]

Color V1
1: Red 2
2: Blue 0
3: Green 1

也很容易使用 ifelse()在您的 data.table 中获取蓝色而不是 0 的 NA。请参阅:
dt[,ifelse(sum(!is.na(X2)==0),as.integer(NA),sum(!is.na(X2))),by=.(Color)]

Color V1
1: Red 2
2: Blue NA
3: Green 1

数据:
 dt <- as.data.table(fread("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"))

关于r - 按组计算非 NA 值的数量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41853387/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com