我如何获得条件中R中多列的中位数(根据另一列)

艾拉

我是R的初学者,我想知道如何执行以下任务:

我想用数据集所有列的中位数替换数据集的缺失值。但是,对于每一列,我想要某个类别的中位数(取决于另一列)。我的数据集如下

structure(list(Country = structure(1:5, .Label = c("Afghanistan", 
"Albania", "Algeria", "Andorra", "Angola"), class = "factor"), 
    CountryID = 1:5, Continent = c(1L, 2L, 3L, 2L, 3L), Adolescent.fertility.rate.... = c(151L, 
    27L, 6L, NA, 146L), Adult.literacy.rate.... = c(28, 98.7, 
    69.9, NA, 67.4)), class = "data.frame", row.names = c(NA, 
-5L))

因此,对于每个列,我想用特定大陆中值的中位数替换缺失值

达里奥

我们可以用每组(中位数和非数字列)中的sdplyr::mutate_at替换为其的中位数NAContinentCountryContinent

df <- structure(list(Country = structure(1:5, .Label = c("Afghanistan",  "Albania", "Algeria", "Andorra", "Angola"), class = "factor"), 
               CountryID = 1:5, Continent = c(1L, 2L, 3L, 2L, 3L),
               Adolescent.fertility.rate.... = c(151L, 27L, 6L, NA, 146L),
               Adult.literacy.rate.... = c(28, 98.7, 69.9, NA, 67.4)), class = "data.frame", row.names = c(NA, -5L))

library(dplyr)
df %>%
  group_by(Continent) %>% 
  mutate_at(vars(-group_cols(), -Country), ~ifelse(is.na(.), median(., na.rm = TRUE), .)) %>% 
  ungroup()

返回值:

  # A tibble: 5 x 5
    Country     CountryID Continent Adolescent.fertility.rate.... Adult.literacy.rate....
    <fct>           <int>     <int>                         <int>                   <dbl>
  1 Afghanistan         1         1                           151                    28  
  2 Albania             2         2                            27                    98.7
  3 Algeria             3         3                             6                    69.9
  4 Andorra             4         2                            27                    98.7
  5 Angola              5         3                           146                    67.4

说明:首先,我们组data.framedf通过Continent然后,按以下方式对分组列(Country而非数字列)以外所有列进行变异:如果is.na为TRUE,则将其替换为中位数,并且由于已分组,因此它将成为该Continent的中位数(如果不是)NA我们将其替换为自身)。最后,我们呼吁ungroup采取良好的措施来恢复“正常”小事

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

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

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

给定另一列中对应的连续值等于数字,则求出一列中值的中位数

来自分类Dev

根据另一列中的多个条件在熊猫数据框中填充一列

来自分类Dev

如何根据另一列更改矩阵中的列

来自分类Dev

根据R中另一列的值选择列

来自分类Dev

如何根据R中另一列的条件将列内容展开为新列

来自分类Dev

R根据另一列中的文本有条件地替换NA

来自分类Dev

如何根据另一列中的值进行条件替换列中的值?

来自分类Dev

如何根据Pandas中另一列的条件比较同一列中的日期?

来自分类Dev

在R中的另一列下面插入多列

来自分类Dev

根据条件将一列中的值替换为另一列中的值

来自分类Dev

如何根据另一列的某些条件在数据框中添加列?

来自分类Dev

根据另一列中的值的最后两位数字创建新列

来自分类Dev

根据另一列中的条件修改一列中的值的快捷方式

来自分类Dev

如何根据另一列中的值填充另一列中的值?

来自分类Dev

R | 根据另一列中的条件更改列中的元素

来自分类Dev

熊猫,根据条件在另一列中搜索结果

来自分类Dev

如何根据条件将一列中的值设置为另一列

来自分类Dev

根据另一列中的条件将值插入另一列中的新列中

来自分类Dev

根据r中另一列的条件计算每小时平均值

来自分类Dev

根据R中另一列的最小值获得一列的对应值

来自分类Dev

根据R或python中的条件,从另一列列表中替换一个列列表中的值

来自分类Dev

如何根据另一列中的条件更改数据框的某一列中的值?

来自分类Dev

根据条件将一列中的条目替换为另一列中的条目

来自分类Dev

如何根据R中另一列的条件求和一列的特定单元格?

来自分类Dev

根据r中的ID从另一列中的一列中查找值

来自分类Dev

根据 R 中数据帧中另一列的条件过滤数据帧

来自分类Dev

如何根据另一列中的条件汇总列中的值?

来自分类Dev

根据另一列 R 中的条件创建一个新列

来自分类Dev

根据另一列在 R 中查找特定列

Related 相关文章

  1. 1

    给定另一列中对应的连续值等于数字,则求出一列中值的中位数

  2. 2

    根据另一列中的多个条件在熊猫数据框中填充一列

  3. 3

    如何根据另一列更改矩阵中的列

  4. 4

    根据R中另一列的值选择列

  5. 5

    如何根据R中另一列的条件将列内容展开为新列

  6. 6

    R根据另一列中的文本有条件地替换NA

  7. 7

    如何根据另一列中的值进行条件替换列中的值?

  8. 8

    如何根据Pandas中另一列的条件比较同一列中的日期?

  9. 9

    在R中的另一列下面插入多列

  10. 10

    根据条件将一列中的值替换为另一列中的值

  11. 11

    如何根据另一列的某些条件在数据框中添加列?

  12. 12

    根据另一列中的值的最后两位数字创建新列

  13. 13

    根据另一列中的条件修改一列中的值的快捷方式

  14. 14

    如何根据另一列中的值填充另一列中的值?

  15. 15

    R | 根据另一列中的条件更改列中的元素

  16. 16

    熊猫,根据条件在另一列中搜索结果

  17. 17

    如何根据条件将一列中的值设置为另一列

  18. 18

    根据另一列中的条件将值插入另一列中的新列中

  19. 19

    根据r中另一列的条件计算每小时平均值

  20. 20

    根据R中另一列的最小值获得一列的对应值

  21. 21

    根据R或python中的条件,从另一列列表中替换一个列列表中的值

  22. 22

    如何根据另一列中的条件更改数据框的某一列中的值?

  23. 23

    根据条件将一列中的条目替换为另一列中的条目

  24. 24

    如何根据R中另一列的条件求和一列的特定单元格?

  25. 25

    根据r中的ID从另一列中的一列中查找值

  26. 26

    根据 R 中数据帧中另一列的条件过滤数据帧

  27. 27

    如何根据另一列中的条件汇总列中的值?

  28. 28

    根据另一列 R 中的条件创建一个新列

  29. 29

    根据另一列在 R 中查找特定列

热门标签

归档