遍历数据框列表,并删除其中的每一列和每一行

切尔马尔

我有几个数据框,我想遍历它们并删除其中包含90%以上NA的某些列和行。我也玩得很烂,但我无法使它正常工作...

我当前的代码是:

data_a_2007 <- read.csv(path)
data_a_2008 <- read.csv(path)
datasets_a <- list(data_a_2007, data_a_2008)

for(dataset in datasets_a) {
  columns_to_delete <- NULL
  rows_to_delete <- NULL

  # find columns threshold
  threshold_columns <- floor(nrow(dataset)*0.1)

  # find columns to delete
  valuecount_columns <- colSums(!is.na(dataset))
  columns_to_delete <- sort(which(valuecount_columns < threshold_columns), decreasing = TRUE)

  # find rows threshold
  threshold_rows <- floor(ncol(dataset)*0.1)

  # find rows to delete
  valuecount_rows <- rowSums(!is.na(dataset))
  rows_to_delete <- sort(which(valuecount_rows < threshold_rows), decreasing = TRUE)

  # delete columns with less than x values  
  for(column_id in columns_to_delete) {
    dataset[column_id] <- NULL
  }

  # delete rows with less than x values  
  for (row in rows_to_delete) {
    dataset <- dataset[-row,]
  }
}

要使行/列的NA小于例如50%,请执行以下操作:

# sample data
set.seed(1)
mat <- matrix(runif(1000), ncol = 5)
mat[sample(1:length(mat), length(mat)*.5)] <- NA
l <- split(as.data.frame(mat), gl(2, 100))

# NA threshold: <50%
NAthres <- 0.5

# keep columns with number of NAs below NA threshold:
l2 <- lapply(l, function(df) {
  cols <- apply(df, 2, function(x) sum(is.na(x)))
  return(df[, cols < (nrow(df) * NAthres)])
})


# keep rows with number of NAs below NA threshold:
l3 <- lapply(l, function(df) {
  rows <- apply(df, 1, function(x) sum(is.na(x)))  
  df[rows < (ncol(df) * NAthres), ]
})

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

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

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

遍历数据集的每一行和每一列

来自分类Dev

遍历数据框中列的每一行中的列表

来自分类Dev

遍历每一列和每一行

来自分类Dev

使用存储在列表中的数据框名称在数据框列表的每一列和每一行上执行多种功能

来自分类Dev

遍历每一行并比较数据框的列值

来自分类Dev

R将计算应用于数据框的每一行和每一列

来自分类Dev

检查数据框中的每一行和每一列,并用用户定义函数替换值

来自分类Dev

数据框中每一列和每一行的百分位数

来自分类Dev

访问每一行并检查数据框中的每一列值

来自分类Dev

遍历数据帧中的每一行,并在相应的x和y列中绘制值(散点图)

来自分类Dev

将数据框的每一列除以数据框的一行

来自分类Dev

计算数据框中每一行和特定列在列表中的出现次数

来自分类Dev

从另一数据框的一列中的另一个单词列表中删除数据框的一列中的每一行中的单词

来自分类Dev

循环遍历数据框的每一列应用函数并将结果保存为新列

来自分类Dev

如何使数据框中的每一行的每一列都有一个值?

来自分类Dev

R将数据框中的每一列除以最后一行的值

来自分类Dev

为熊猫数据框的每一行替换一列中的字符串

来自分类Dev

R将数据框中的每一列除以最后一行的值

来自分类Dev

如何在二维列表中同时打印每一行和每一列?

来自分类Dev

Visual Basic遍历每一行并将每一行的第一列的值写入不同的标签

来自分类Dev

遍历数据表以从每一行获取两个特定值

来自分类Dev

在Python中,如何生成一个数组的排列,其中每一列和每一行只有一个元素?

来自分类Dev

如何依次遍历r data.frame中的每一行,然后遍历每一列?

来自分类Dev

如何访问矩形矩阵中的每一行和每一列

来自分类Dev

如何对html表的每一行和每一列的值求和

来自分类Dev

检查每一列和每一行是否重复

来自分类Dev

循环遍历数据框并为在同一测试集上评估的每一列创建一个模型

来自分类Dev

查找数据框每一行的元素的列索引

来自分类Dev

查找数据框每一行的元素的列索引

Related 相关文章

  1. 1

    遍历数据集的每一行和每一列

  2. 2

    遍历数据框中列的每一行中的列表

  3. 3

    遍历每一列和每一行

  4. 4

    使用存储在列表中的数据框名称在数据框列表的每一列和每一行上执行多种功能

  5. 5

    遍历每一行并比较数据框的列值

  6. 6

    R将计算应用于数据框的每一行和每一列

  7. 7

    检查数据框中的每一行和每一列,并用用户定义函数替换值

  8. 8

    数据框中每一列和每一行的百分位数

  9. 9

    访问每一行并检查数据框中的每一列值

  10. 10

    遍历数据帧中的每一行,并在相应的x和y列中绘制值(散点图)

  11. 11

    将数据框的每一列除以数据框的一行

  12. 12

    计算数据框中每一行和特定列在列表中的出现次数

  13. 13

    从另一数据框的一列中的另一个单词列表中删除数据框的一列中的每一行中的单词

  14. 14

    循环遍历数据框的每一列应用函数并将结果保存为新列

  15. 15

    如何使数据框中的每一行的每一列都有一个值?

  16. 16

    R将数据框中的每一列除以最后一行的值

  17. 17

    为熊猫数据框的每一行替换一列中的字符串

  18. 18

    R将数据框中的每一列除以最后一行的值

  19. 19

    如何在二维列表中同时打印每一行和每一列?

  20. 20

    Visual Basic遍历每一行并将每一行的第一列的值写入不同的标签

  21. 21

    遍历数据表以从每一行获取两个特定值

  22. 22

    在Python中,如何生成一个数组的排列,其中每一列和每一行只有一个元素?

  23. 23

    如何依次遍历r data.frame中的每一行,然后遍历每一列?

  24. 24

    如何访问矩形矩阵中的每一行和每一列

  25. 25

    如何对html表的每一行和每一列的值求和

  26. 26

    检查每一列和每一行是否重复

  27. 27

    循环遍历数据框并为在同一测试集上评估的每一列创建一个模型

  28. 28

    查找数据框每一行的元素的列索引

  29. 29

    查找数据框每一行的元素的列索引

热门标签

归档