我正在使用该程序 gs
在 bnlearn
我的数据框包 EMGbin
.数据框 EMGbin
包含从 A 到 Z 的所有因子。EMGbin
有 600000 列和 130 行。这是 EMGbin
的样本:
V101 V102 V103 V104 V105 V106
1 L M D S O O
2 L M C P A O
3 J M C O O O
4 L N D R A O
5 K M D O A O
6 K M C P O O
7 K N D Q O O
8 L N D R O O
9 L M D O O O
10 K M D S A O
当我运行程序时
gs(EMGbin)
,我收到错误:Error in check.data(x) : all factors must have at least two levels.
当我跑
sapply(EMGbin, nlevels)
,我看到了 600,000 个变量中每个变量的因子水平,我看到其中一些被列为 1 级。删除具有 1 个因子水平的变量会有所帮助吗?到目前为止,我知道如何做到这一点的唯一方法是 x[, sapply(x, fun) != 1]
,但我不知道用什么来代替 fun
.
最佳答案
用这个:
x[, sapply(x, nlevels) > 1]
关于删除因子水平为 1 的变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17995195/