我想用一個dplyr選項替換這個簡單的 for 回圈:
df <- data.frame(ID=c(rep(7,3), rep(8,3), rep(9,3)), visit= c(rep(c(0, 180, 360),3)), value = c("Poor", NA, "High", "High", NA, "High", NA, "Poor", "Poor") )
vec <- sum(!is.na(df$value)[df$visit==0])
for (i in seq(180, 360, 180)) {
tmp <- sum(!is.na(df$value)[df$visit==i])
vec <- c(vec, tmp)
}
為每個 'visit' 獲取不丟失 'value' 的長度向量i:
vec
[1] 2 1 3
uj5u.com熱心網友回復:
一個簡單的dplyr方法是group_by你的visit專欄,然后sum就value不是NA.
如果你希望你有一個資料框而不是一個向量,只需忽略pull(vec).
library(dplyr)
df %>%
group_by(visit) %>%
summarize(vec = sum(!is.na(value))) %>%
pull(vec)
[1] 2 1 3
轉載請註明出處,本文鏈接:https://www.uj5u.com/gongcheng/446698.html
上一篇:從陣列PHP列印回圈的用戶輸入
