我正在尝试从我的数据框中仅选择因子列。以下是示例:
bank[,apply(bank[,names(bank)!="id"], is.factor)]
但是代码的行为很奇怪。逐步来看:
sapply(bank[,names(bank)!="id"], is.factor)
我收到:
age sex region income married children car
FALSE TRUE TRUE FALSE TRUE FALSE TRUE
save_act current_act mortgage pep ageBin
TRUE TRUE TRUE TRUE TRUE
看起来不错。现在,我假设只需将这个TRUE / FALSE矩阵传递到下一步,并仅获取所需的列:
bank[,sapply(bank[,names(bank)!="id"], is.factor)]
但是结果是我得到了与原始银行数据框中完全相同的所有列。没有任何过滤掉的内容。我尝试了各种方法,但都找不到解决方案。请问我做错了什么?