让我有这样的数据框(df1)与因素:
factor1 factor2 factor3
------- ------- -------
d a x
d a x
b a x
b c x
b c y
c c y
c n y
c n y
c n y
我想从这个数据框中删除其中一个元素的观测值少于 3 个的因素。
在此数据框中,factor1 有 3 个级别(d、b 和 c)。然而 d level 的频率为 2。所以我想从这个数据框中删除 Factor1。
结果数据框应如下所示:
factor2 factor3
------- -------
a x
a x
a x
c x
c y
c y
n y
n y
n y
我如何使用 R 来做到这一点?我将非常高兴获得任何帮助。多谢。
你可以尝试使用lapply
and table
:
df1[, lapply(c(1,2,3), FUN = function(x) min(table(df1[,x]))) >= 3]
并且,更通用一点:
df1[, lapply(1:ncol(df1), FUN = function(x) min(table(df1[,x]))) >= 3]
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)