通过重复测量删除一列中变量中至少有一个 NA 值的所有个体
Remove all individuals in a column that have at least one NA value in variables with repeated measurements
我是 R 的新手,我想寻求一些帮助。
我有一个具有以下结构的数据框:
DF <- data.frame(patient = c(1, 1, 2, 2, 3, 3), treatment = c("baseline", "on-treatment", "baseline", "on-treatment", "baseline", "on-treatment"), cholesterol_value = c(300, 100, 255, NA, 270, 150))
患者 2 有基线胆固醇值,但没有治疗中胆固醇值。
我想找到一种方法来删除 for 循环中与患者 2 对应的所有值,只保留与患者 1 和 3 对应的值。
谁能帮帮我?
谢谢!
library(tidyverse)
DF %>%
group_by(patient) %>%
filter(!any(is.na(cholesterol_value)))
使用base R
subset(DF, !patient %in% unique(patient[is.na(cholesterol_value)]))
这是另一个使用 ´avein
subset`
的基本 R 选项
subset(
DF,
!ave(is.na(cholesterol_value), patient, FUN = any)
)
这给出了
patient treatment cholesterol_value
1 1 baseline 300
2 1 on-treatment 100
5 3 baseline 270
6 3 on-treatment 150
我是 R 的新手,我想寻求一些帮助。
我有一个具有以下结构的数据框:
DF <- data.frame(patient = c(1, 1, 2, 2, 3, 3), treatment = c("baseline", "on-treatment", "baseline", "on-treatment", "baseline", "on-treatment"), cholesterol_value = c(300, 100, 255, NA, 270, 150))
患者 2 有基线胆固醇值,但没有治疗中胆固醇值。
我想找到一种方法来删除 for 循环中与患者 2 对应的所有值,只保留与患者 1 和 3 对应的值。
谁能帮帮我?
谢谢!
library(tidyverse)
DF %>%
group_by(patient) %>%
filter(!any(is.na(cholesterol_value)))
使用base R
subset(DF, !patient %in% unique(patient[is.na(cholesterol_value)]))
这是另一个使用 ´avein
subset`
subset(
DF,
!ave(is.na(cholesterol_value), patient, FUN = any)
)
这给出了
patient treatment cholesterol_value
1 1 baseline 300
2 1 on-treatment 100
5 3 baseline 270
6 3 on-treatment 150