R计数组计数,如果缺失则删除n NA

5lhxktic  于 2023-04-03  发布在  其他
关注(0)|答案(1)|浏览(152)
data=data.frame("person"=c(1,1,1,2,2,2,2,3,3,3,3,3),
"time"=c(1,2,3,1,2,3,4,1,2,3,4,5),
"score"=c(NA,100,97,63,NA,NA,51,NA,NA,73,NA,NA),
"count"=c(2,2,2,2,2,2,2,1,1,1,1,1))

我的目标是生成'count'列,它简单地等于我的 Dataframe 中非缺失'score'值的数量。
这是我的尝试但失败了

data$count_try <- aggregate(data[c("count_try")], by=list(person), FUN=sum, na.rm=TRUE)

在我能够创建这个'计数'变量后,我希望删除具有3个或更多NA值的人,谢谢。

ttvkxqim

ttvkxqim1#

df1=data.frame("person"=c(1,1,1,2,2,2,2,3,3,3,3,3),
                "time"=c(1,2,3,1,2,3,4,1,2,3,4,5),
                "score"=c(NA,100,97,63,NA,NA,51,NA,NA,73,NA,NA))

library(dplyr)
df1 %>% group_by(person) %>% mutate(count = sum(!is.na(score))) %>% 
        filter(count > n()-3)
#> # A tibble: 7 x 4
#> # Groups:   person [2]
#>   person  time score count
#>    <dbl> <dbl> <dbl> <int>
#> 1      1     1    NA     2
#> 2      1     2   100     2
#> 3      1     3    97     2
#> 4      2     1    63     2
#> 5      2     2    NA     2
#> 6      2     3    NA     2
#> 7      2     4    51     2

创建于2019-06-17由reprex package(v0.3.0)

相关问题