【发布时间】:2018-09-25 18:09:09
【问题描述】:
我有一个包含许多变量的数据集,包括 26 个变量,所有变量的值都在 1-12 之间。我想删除至少 80% 的值相同的所有行(超过 21 个 1,或超过 21 个 2 等)。我很难想出在 R 中执行此操作的方法,并且非常感谢有关如何解决此问题的一些想法!
当我运行时
out <- df1[apply(df1, 1, function(x) mean(x == Mode(x)) <= 0.8),]
在一组变量的子集上编码,另一组变量的值都变为NA。
这里有 60 行数据集,包含来自所有三个条件的 5 个问题:https://nofile.io/f/gBWymjYmQ2O/dataset
我的预期输出是 df1(它有 100 多个变量),其中对 26 个感兴趣的变量的响应超过 80% 的行相同。
【问题讨论】:
-
我理解你的描述。我想知道的是,在您显示的示例数据中,在删除 NA 行和大于 80% 的相同响应后,当我得到 48 行时将输出多少行
-
我实际上不希望删除所有 NA 的行。除了 NA 之外,只有 90% 以上相同值的行。这有帮助吗?
-
在这种情况下
df1[ apply(df1, 1, function(x) mean(x == Mode(x), na.rm = TRUE) <= 0.8 | all(is.na(x))),] -
是的,就是这样!非常感谢!
标签: r database analysis data-science