删除因子水平为 1 的变量

标签 r

我正在使用该程序 gsbnlearn我的数据框包 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/

相关文章:

regex - 删除最后一个 "/"之前的部分字符串

R错误: some group is too small for 'qda'

r - 丢掉前n行

r - 使用 R 的 igraph 中的迭代器 V 和 E 如何工作?

R:为什么 xts 数据出现这种奇怪的 ccf 结果

r - 如何更改 clusterOptions 以在 R 传单中显示饼图?

r - R 中的 lapply 函数可以返回命名列表吗?

r - 查找字符串和长字符串向量之间的最小汉明距离(快速)

r - 如何用插入符号绘制预测机器学习?

mysql - VIF 在 R 中返回别名系数