我正在使用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
的内容。
答案 0 :(得分:7)
使用此:
x[, sapply(x, nlevels) > 1]
答案 1 :(得分:2)
您可以使用nlevels
功能检查因子中的级别数。