我正在将 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/