【发布时间】:2017-08-26 03:43:24
【问题描述】:
我正在尝试从我的数据框中仅选择因子列。示例如下:
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)]
但结果我得到了与原始银行数据框中相同的所有列。什么都没有被过滤掉。我尝试了一种或另一种方法,但找不到解决方案。关于我做错了什么有什么建议吗?
【问题讨论】:
-
@d.b 只是一个包含一堆列的数据框
-
@d.b 不,我从 csv 加载它。没什么特别的。
-
您应该提供reproducible example。这将使您更容易为您提供帮助。 TUE/FALSE 值应与您的所有列匹配。通过排除“id”列,您正在改变所有内容。
标签: r dataframe data-science data-cleaning