从数据框的某些特定单元格中删除“NA”。不是所有的人

米特什·索马尼

所以我的数据格式如下:

    A   B   C   D   E   F
1   12  NA  NA  28  NA  NA
2   34  NA  NA  29  NA  34
3   98  98  NA  90  NA  67
4   29  34  84  NA  NA  67
5   84  NA  29  89  NA  45
6   87  76  28  28  34  67
7   87  23  28  20  24  34
8   32  98  28  49  23  67
9   43  43  27  39  56  30
10  93  23  85  90  46  65

现在我希望它采用以下格式:

    A   B   C   D   E   F
1   12  98  84  28  34  34
2   34  34  29  29  24  67
3   98  NA  28  90  23  67
4   29  76  28  NA  56  45
5   84  23  28  89  46  67
6   87  98  27  28      34
7   87  43  85  20      67
8   32  23      49      30
9   43          39      65
10  93          90      

然后我想NA用该列的中位数填充左边的s。

任何人都可以帮我解决这个问题。我对 R 很陌生,对如何实现这一点感到困惑。

提前致谢。

瑞·巴拉达斯

这只能使用基础 R 来完成。

我将使用名为dat1的数据副本dat2前者会将所有非缺失值的中位数归入缺失值。后者将在计算中位数之前从向量中删除顶部和底部值。

dat1 <- dat2 <- dat    # Make two copies of the data

dat1[] <- lapply(dat, function(x){
  if(anyNA(x)){
    inx <- which(is.na(x))
    x[inx] <- median(x, na.rm = TRUE)
    c(x[-inx], x[inx])
  } else x
})

dat2[] <- lapply(dat, function(x){
  if(anyNA(x)){
    inx <- which(is.na(x))
    x_tmp <- x[-inx]
    x[inx] <- median(x_tmp[-c(1, length(x_tmp))], na.rm = TRUE)
    c(x[-inx], x[inx])
  } else x
})

dat1
#    A  B  C  D  E  F
#1  12 98 84 28 34 34
#2  34 34 29 29 24 67
#3  98 76 28 90 23 67
#4  29 23 28 89 56 45
#5  84 98 28 28 46 67
#6  87 43 27 20 34 34
#7  87 23 85 49 34 67
#8  32 43 28 39 34 30
#9  43 43 28 90 34 65
#10 93 43 28 39 34 65

dat2
#   A  B  C  D  E  F
#1  12 98 84 28 34 34
#2  34 34 29 29 24 67
#3  98 76 28 90 23 67
#4  29 23 28 89 56 45
#5  84 98 28 28 46 67
#6  87 43 27 20 24 34
#7  87 23 85 49 24 67
#8  32 43 28 39 24 30
#9  43 43 28 90 24 65
#10 93 43 28 39 24 67

编辑。

以下函数执行上面两个匿名函数所做的工作。所需要做的就是将参数设置为适当的值。

请注意,测试将结果与上述原始结果进行比较。

imputeStat <- function(x, stat = median, remove = c("top", "bottom")){
  if(anyNA(x)){
    inx <- which(is.na(x))
    x_tmp <- x[-inx]
    if("top" %in% remove) inx_rem <- 1
    if("bottom" %in% remove) inx_rem <- c(inx_rem, length(x[-inx]))
    if(is.logical(remove)){
      if(!remove) x[inx] <- median(x, na.rm = TRUE)
    }else{
      x[inx] <- median(x_tmp[-inx_rem], na.rm = TRUE)
    }
    c(x[-inx], x[inx])
  } else x
}

dat3 <- dat
dat3[] <- lapply(dat3, imputeStat, remove = FALSE)
identical(dat1, dat3)
#[1] TRUE

dat4 <- dat
dat4[] <- lapply(dat4, imputeStat)
identical(dat2, dat4)
#[1] TRUE

数据。

dat <- read.table(text = "
    A   B   C   D   E   F
1   12  NA  NA  28  NA  NA
2   34  NA  NA  29  NA  34
3   98  98  NA  90  NA  67
4   29  34  84  NA  NA  67
5   84  NA  29  89  NA  45
6   87  76  28  28  34  67
7   87  23  28  20  24  34
8   32  98  28  49  23  67
9   43  43  27  39  56  30
10  93  23  85  90  46  65
", header = TRUE)

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

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

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

iOS 7-ABPersonViewController为什么不显示我所有的人的信息?

来自分类Dev

Python的 - Django的 - 过滤器和计数从开始日期在第一年所有的人

来自分类Dev

对于熊猫数据框中的特定单元格,删除列表中的元素

来自分类Dev

对Pandas数据框中的特定单元格求和

来自分类Dev

删除单元格中的特定单词和所有内容

来自分类Dev

将数据框列除以特定单元格

来自分类Dev

如何将数据框中的所有非数字单元格转换为 NA

来自分类Dev

如何使用python熊猫获取数据框以覆盖特定单元格中的现有excel?

来自分类Dev

显示熊猫数据框中满足特定条件的所有单元格

来自分类Dev

从熊猫中的多个数据框中绘制(并保存)特定单元格

来自分类Dev

如何在数据框中添加名称并更改R中的特定单元格

来自分类Dev

Android - 如何在特定单元格中显示 ImageView 并隐藏所有其他单元格

来自分类Dev

如何在 vaex 数据框中访问特定单元格?

来自分类Dev

想在java中打印excel中特定单元格的所有行值

来自分类Dev

如何更改每行中特定单元格左侧的所有值

来自分类Dev

如何更改每行中特定单元格左侧的所有值

来自分类Dev

从页面上所有表格的特定单元格中获取值

来自分类Dev

DataTables:遍历所有行并从每行的特定单元格中获取值

来自分类Dev

从具有选定单元格的Excel工作表中删除特定内容

来自分类Dev

如何显示特定单元格中的数据?

来自分类Dev

在特定单元格的gridview中显示数据

来自分类Dev

有没有办法将矢量形式的数据框中的所有单元格设置为NA?

来自分类Dev

使用带有Python的Selenium Webdriver获取HTML表中特定单元格的数据

来自分类Dev

如何通过 Python3.7 中的 Pandas 数据框验证 Excel 工作表中的特定单元格值

来自分类Dev

从某些元素为“无”的所有单元格中删除字符串

来自分类Dev

数据框删除所有nan索引,并保留原始索引值的单元格

来自分类Dev

如何从LibreOffice Calc中的所有选定单元格中删除保护单引号的纯文本?

来自分类Dev

当行位置动态时,将变量分配给数据框中的特定单元格

来自分类Dev

如何根据多种条件更改熊猫数据框列系列中的特定单元格值?

Related 相关文章

  1. 1

    iOS 7-ABPersonViewController为什么不显示我所有的人的信息?

  2. 2

    Python的 - Django的 - 过滤器和计数从开始日期在第一年所有的人

  3. 3

    对于熊猫数据框中的特定单元格,删除列表中的元素

  4. 4

    对Pandas数据框中的特定单元格求和

  5. 5

    删除单元格中的特定单词和所有内容

  6. 6

    将数据框列除以特定单元格

  7. 7

    如何将数据框中的所有非数字单元格转换为 NA

  8. 8

    如何使用python熊猫获取数据框以覆盖特定单元格中的现有excel?

  9. 9

    显示熊猫数据框中满足特定条件的所有单元格

  10. 10

    从熊猫中的多个数据框中绘制(并保存)特定单元格

  11. 11

    如何在数据框中添加名称并更改R中的特定单元格

  12. 12

    Android - 如何在特定单元格中显示 ImageView 并隐藏所有其他单元格

  13. 13

    如何在 vaex 数据框中访问特定单元格?

  14. 14

    想在java中打印excel中特定单元格的所有行值

  15. 15

    如何更改每行中特定单元格左侧的所有值

  16. 16

    如何更改每行中特定单元格左侧的所有值

  17. 17

    从页面上所有表格的特定单元格中获取值

  18. 18

    DataTables:遍历所有行并从每行的特定单元格中获取值

  19. 19

    从具有选定单元格的Excel工作表中删除特定内容

  20. 20

    如何显示特定单元格中的数据?

  21. 21

    在特定单元格的gridview中显示数据

  22. 22

    有没有办法将矢量形式的数据框中的所有单元格设置为NA?

  23. 23

    使用带有Python的Selenium Webdriver获取HTML表中特定单元格的数据

  24. 24

    如何通过 Python3.7 中的 Pandas 数据框验证 Excel 工作表中的特定单元格值

  25. 25

    从某些元素为“无”的所有单元格中删除字符串

  26. 26

    数据框删除所有nan索引,并保留原始索引值的单元格

  27. 27

    如何从LibreOffice Calc中的所有选定单元格中删除保护单引号的纯文本?

  28. 28

    当行位置动态时,将变量分配给数据框中的特定单元格

  29. 29

    如何根据多种条件更改熊猫数据框列系列中的特定单元格值?

热门标签

归档