gpt4 book ai didi

当 R 中有多个值选项时,在每个 ID 中重复一个值

转载 作者:行者123 更新时间:2023-12-05 08:37:20 24 4
gpt4 key购买 nike

我在 R 中有一个数据集,其中包含不同 ID 内的多个高度观测值。对于某些 ID,有几种不同的高度度量,而对于某些 ID,只有一种。对于每个 ID 中的大多数观察/行,缺少高度值(编码为 NA)。我想创建一个新变量,它采用每个 ID 可用的第一个高度测量值,并为该 ID 的所有行/观察值重复它(不同的 ID 具有不同的总行数)。我尝试过使用填充、变异和命令,但我正在努力让它发挥作用。

目前我的数据是这样的:

data = data.frame(id = c(1,1,1,2,2,3,3,3,3), 
height = c(150, NA, NA, NA, 148, NA, 152, 151, NA))

# id height
# 1 1 150
# 2 1 NA
# 3 1 NA
# 4 2 NA
# 5 2 148
# 6 3 NA
# 7 3 152
# 8 3 151
# 9 3 NA

理想情况下,我希望能够添加一个变量 (height_filled),使其看起来像这样:

data = data.frame(id = c(1,1,1,2,2,3,3,3,3),
height = c(150, NA, NA, NA, 148, NA, 152, 151, NA),
height_filled = c(150, 150, 150, 148, 148, 152, 152, 152, 152))

# id height height_filled
# 1 1 150 150
# 2 1 NA 150
# 3 1 NA 150
# 4 2 NA 148
# 5 2 148 148
# 6 3 NA 152
# 7 3 152 152
# 8 3 151 152
# 9 3 NA 152

非常感谢任何帮助!

最佳答案

我会尝试以下方法。按id分组后,height使用na.omit去除缺失值,使用first选择NA 删除后的第一个可用高度。

library(dplyr)

data %>%
group_by(id) %>%
mutate(height_filled = first(na.omit(height)))

输出

     id height height_filled
<dbl> <dbl> <dbl>
1 1 150 150
2 1 NA 150
3 1 NA 150
4 2 NA 148
5 2 148 148
6 3 NA 152
7 3 152 152
8 3 151 152
9 3 NA 152

关于当 R 中有多个值选项时,在每个 ID 中重复一个值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/65779755/

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