gpt4 book ai didi

r - 使用 R 选择第一个非 NA 值

转载 作者:行者123 更新时间:2023-12-05 09:35:40 26 4
gpt4 key购买 nike

df<-data.frame(ID = c(1,1,1,2,3,3,3),
test = c(NA, 5.5, 6.4, NA, 7.3, NA, 10.9))

我想创建一个名为“value”的变量,它是每个单独 ID 测试的第一个非 NA 值。对于只有NA的个体ID 2,值为NA。

预期输出是:

df<-data.frame(ID = c(1,1,1,2,3,3,3),
test = c(NA, 5.5, 6.4, NA, 7.3, NA, 10.9),
value = c(5.5, 5.5, 5.5, NA, 7.3, 7.3, 7.3))

最佳答案

您可以使用aveIDwhich.max进行分组,以使用[选择第一个非NA 值。

df$value <- ave(df$test, df$ID, FUN=function(x) x[which.max(!is.na(x))])
df
# ID test value
#1 1 NA 5.5
#2 1 5.5 5.5
#3 1 6.4 5.5
#4 2 NA NA
#5 3 7.3 7.3
#6 3 NA 7.3
#7 3 10.9 7.3

关于r - 使用 R 选择第一个非 NA 值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/65685388/

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