用其他列的总和替换组的NA值

玛雅人

我有以下数据框,其中“ id”通常根本没有收到“ a”。因此,对于该“ id”,列“ a”中的所有值均为NA。

  id  a  b  c
1 14  1  2 NA
2 14  2  4  1
3 15 NA  8  1
4 15 NA NA  3
5 15 NA  1  3
6 26  2  4  4
7 26 NA  2  0
8 26  2  9  1

如果id根本没有收到“ a”,我想用b + c替换那些NA值。但仅当bc存在时。因此,数据框将如下所示:

  id  a  b  c
1 14  1  2 NA
2 14  2  4  1
3 15  9  8  1
4 15 NA NA  3
5 15  4  1  3
6 26  2  4  4
7 26 NA  2  0
8 26  2  9  1

现在我有了这个,但是找不到基于id的方法。它还更改了第7行,这不会发生,因为ID 26确实收到了一些“ a”

df$a <- ifelse(is.na(df$a), df$b+df$c, df$a)

  id  a  b  c
1 14  1  2 NA
2 14  2  4  1
3 15  9  8  1
4 15 NA NA  3
5 15  4  1  3
6 26  2  4  4
7 26  2  2  0
8 26  2  9  1
阿克伦

我们可以coalesce在按“ id”分组后使用

library(dplyr)
df %>%
   group_by(id) %>%
   mutate(a = if(all(is.na(a))) coalesce(a, b + c) else a)
# A tibble: 8 x 4
# Groups:   id [3]
#     id     a     b     c
#  <int> <int> <int> <int>
#1    14     1     2    NA
#2    14     2     4     1
#3    15     9     8     1
#4    15    NA    NA     3
#5    15     4     1     3
#6    26     2     4     4
#7    26    NA     2     0
#8    26     2     9     1

数据

df <- structure(list(id = c(14L, 14L, 15L, 15L, 15L, 26L, 26L, 26L), 
    a = c(1L, 2L, NA, NA, NA, 2L, NA, 2L), b = c(2L, 4L, 8L, 
    NA, 1L, 4L, 2L, 9L), c = c(NA, 1L, 1L, 3L, 3L, 4L, 0L, 1L
    )), class = "data.frame", row.names = c("1", "2", "3", "4", 
"5", "6", "7", "8"))

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

dplyr的逐行+ replace_NAs:用其他列中的值替换多列中的NA

来自分类Dev

用其他列中的修改日期替换该列中的NA值

来自分类Dev

用其他观察值替换变量中的NA

来自分类Dev

根据 id 用其他行值替换 NA

来自分类Dev

R用其他列的行替换列的值

来自分类Dev

根据条件用其他列均值替换NaN值

来自分类Dev

熊猫用其他替换一列值

来自分类Dev

用NA替换多个数据框列中的空白值:我应该使用ifelse还是其他?

来自分类Dev

用所有其他元素的总和替换每个元素

来自分类Dev

用其他值替换零序列

来自分类Dev

用另一列的总和替换正在进行的NA值

来自分类Dev

用其他数据框中的值替换数据框中的NA

来自分类Dev

用其他行的值有条件地替换NA

来自分类Dev

用组中其他列的第一个或最后一个值替换数据框中的NA值

来自分类Dev

用组中其他列的第一个或最后一个值替换数据框中的NA值

来自分类Dev

在 Pandas 中有条件地用其他值替换列值

来自分类Dev

基于R中其他列的列值总和

来自分类Dev

根据某些条件,用其他列中的值替换NaN

来自分类Dev

用其他列中的值替换one_hot_encoding 0/1

来自分类Dev

用其他列中的计算替换熊猫数据框中的NaN值

来自分类Dev

用其他自定义值替换零值

来自分类Dev

用Postgres中其他值的列表替换多个值

来自分类Dev

用其他值替换数据框中的值

来自分类Dev

匹配时用其他值替换值

来自分类Dev

用其他表中的值替换选择值

来自分类Dev

用“ ID”将其他数据框中的值替换为数据框变量中的NA值

来自分类Dev

用“ ID”将其他数据框中的值替换为数据框变量中的NA值

来自分类Dev

根据数据框中某些其他属性的值,用“ Y”或“ N”替换变量的所有Na值

来自分类Dev

用特定列的NA替换特定值

Related 相关文章

  1. 1

    dplyr的逐行+ replace_NAs:用其他列中的值替换多列中的NA

  2. 2

    用其他列中的修改日期替换该列中的NA值

  3. 3

    用其他观察值替换变量中的NA

  4. 4

    根据 id 用其他行值替换 NA

  5. 5

    R用其他列的行替换列的值

  6. 6

    根据条件用其他列均值替换NaN值

  7. 7

    熊猫用其他替换一列值

  8. 8

    用NA替换多个数据框列中的空白值:我应该使用ifelse还是其他?

  9. 9

    用所有其他元素的总和替换每个元素

  10. 10

    用其他值替换零序列

  11. 11

    用另一列的总和替换正在进行的NA值

  12. 12

    用其他数据框中的值替换数据框中的NA

  13. 13

    用其他行的值有条件地替换NA

  14. 14

    用组中其他列的第一个或最后一个值替换数据框中的NA值

  15. 15

    用组中其他列的第一个或最后一个值替换数据框中的NA值

  16. 16

    在 Pandas 中有条件地用其他值替换列值

  17. 17

    基于R中其他列的列值总和

  18. 18

    根据某些条件,用其他列中的值替换NaN

  19. 19

    用其他列中的值替换one_hot_encoding 0/1

  20. 20

    用其他列中的计算替换熊猫数据框中的NaN值

  21. 21

    用其他自定义值替换零值

  22. 22

    用Postgres中其他值的列表替换多个值

  23. 23

    用其他值替换数据框中的值

  24. 24

    匹配时用其他值替换值

  25. 25

    用其他表中的值替换选择值

  26. 26

    用“ ID”将其他数据框中的值替换为数据框变量中的NA值

  27. 27

    用“ ID”将其他数据框中的值替换为数据框变量中的NA值

  28. 28

    根据数据框中某些其他属性的值,用“ Y”或“ N”替换变量的所有Na值

  29. 29

    用特定列的NA替换特定值

热门标签

归档