My df包含一列(V5),其中包含所有缺失的值:

> df
# A tibble: 7 × 5
     V1    V2    V3    V4 V5   
  <dbl> <dbl> <dbl> <dbl> <lgl>
1  1.19  2.45  0.83  0.87 NA   
2  1.13  0.79  0.68  5.43 NA   
3  1.18  1.09  1.04 NA    NA   
4  1.11  1.1   4.24 NA    NA   
5  1.16  1.13 NA    NA    NA   
6  1.18 NA    NA    NA    NA   
7  1.44 NA     9.17 NA    NA

我想用前面几列中最接近的非缺失值来填充V5列:

> df1
# A tibble: 7 × 5
     V1    V2    V3    V4    V5
  <dbl> <dbl> <dbl> <dbl> <dbl>
1  1.19  2.45  0.83  0.87  0.87
2  1.13  0.79  0.68  5.43  5.43
3  1.18  1.09  1.04 NA     1.04
4  1.11  1.1   4.24 NA     4.24
5  1.16  1.13 NA    NA     1.13
6  1.18 NA    NA    NA     1.18
7  1.44 NA     9.17 NA     9.17

similar个帖子,但没有一个能帮助解决这个问题.所以任何线索都将不胜感激.

以下是dput:

structure(list(V1 = c(1.19, 1.13, 1.18, 1.11, 1.16, 1.18, 1.44
), V2 = c(2.45, 0.79, 1.09, 1.1, 1.13, NA, NA), V3 = c(0.83, 
0.68, 1.04, 4.24, NA, NA, 9.17), V4 = c(0.87, 5.43, NA, NA, NA, 
NA, NA), V5 = c(NA_character_, NA_character_, NA_character_, 
NA_character_, NA_character_, NA_character_, NA_character_)), row.names = c(NA, 
-7L), class = c("tbl_df", "tbl", "data.frame"))

推荐答案

你可以用

library(dplyr)
df %>% 
  mutate(V5 = coalesce(V4, V3, V2, V1))

这又回来了

# A tibble: 7 x 5
     V1    V2    V3    V4    V5
  <dbl> <dbl> <dbl> <dbl> <dbl>
1  1.19  2.45  0.83  0.87  0.87
2  1.13  0.79  0.68  5.43  5.43
3  1.18  1.09  1.04 NA     1.04
4  1.11  1.1   4.24 NA     4.24
5  1.16  1.13 NA    NA     1.13
6  1.18 NA    NA    NA     1.18
7  1.44 NA     9.17 NA     9.17

或者从https://github.com/tidyverse/funs/issues/54#issuecomment-892377998开始更一般

df %>% 
  mutate(V5 = do.call(coalesce, rev(across(-V5))))

还是https://github.com/tidyverse/funs/issues/54#issuecomment-1096449488

df %>% 
  mutate(V5 = coalesce(!!!rev(select(., -V5))))

R相关问答推荐

如何按行和列组合多个格式?

手工PCA上的载体与输出双图不匹配

如果行和列名以相同的开头,将矩阵值设置为0

如何使用stat_extract_all正确提取我的目标值?

如何将在HW上运行的R中的消息(错误、警告等)作为批处理任务输出

r替换lme S4对象的字符串的一部分

使用ggsankey调整Sankey图中单个 node 上的标签

gganimate在使用shadow_mark选项时不保留所有过go 的标记

如何在R中对深度嵌套的tibbles中的非空连续行求和?

计算时间段的ECDF(R)

在R中无法读入具有Readxl和lApply的数据集

使用较长的查询提取具有部分匹配的列表中的较短目标,

R -在先前group_by级别汇总时获取最大大小子组的计数

从多层嵌套列表构建Tibble?

如何平滑或忽略R中变量的微小变化?

警告消息";没有非缺失的参数到min;,正在返回数据中的inf";.表分组集

优化从每个面的栅格中提取值

是否有可能从边界中找到一个点值?

计算来自单独分组的分幅的值的百分位数

有没有办法将勾选/审查标记添加到R中的累积关联图中?