gpt4 book ai didi

r - 根据其他两个列创建新列,但在两个列中均观察到时取平均值

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

我有两个数字列score.ascore.b。我想创建一个新的变量score.c,将其从a或b转移到观察到的分数,但是当在两个位置都观察到它们时,我需要取平均值。

help <- data.frame(deid = c(5, 7, 12, 15, 25, 32, 42, 77, 92, 100, 112, 113),
score.a = c(NA, 2, 2, 2, NA, NA, NA, NA, NA, NA, 2, NA),
score.b = c(4, NA, NA, 4, 4, 4, NA, NA, 4, 4, NA, 4))

创造
    deid score.a score.b
1 5 NA 4
2 7 2 NA
3 12 2 NA
4 15 2 4
5 25 NA 4
6 32 NA 4
7 42 NA NA
8 77 NA NA
9 92 NA 4
10 100 NA 4
11 112 2 NA
12 113 NA 4

我希望创建一个看起来像
     deid score.a score.b score.c
1 5 NA 4 4
2 7 2 NA 2
3 12 2 NA 2
4 15 2 4 3
5 25 NA 4 4
6 32 NA 4 4
7 42 NA NA NA
8 77 NA NA NA
9 92 NA 4 4
10 100 NA 4 4
11 112 2 NA 2
12 113 NA 4 4

例如,在第4行中取平均值。

我的尝试使用了 help %>% group_by(deid) %>% mutate(score.c = (score.a + score.b)/2),但这仅处理了两列中观察到的数据。

最佳答案

尝试

  help$score.c <- rowMeans(help[2:3], na.rm=TRUE)

或使用 dplyr的可能方法(未经彻底测试)
 library(dplyr)
help %>%
mutate(val= (pmax(score.a, score.b, na.rm=TRUE)+
pmin(score.a, score.b, na.rm=TRUE))/2)

关于r - 根据其他两个列创建新列,但在两个列中均观察到时取平均值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30858976/

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