提取R数据框中除数字以外的所有列[重复]

Posted

技术标签:

【中文标题】提取R数据框中除数字以外的所有列[重复]【英文标题】:Extract all columns except numeric in R data frame [duplicate] 【发布时间】:2021-04-20 07:24:18 【问题描述】:

在我的项目中,我想从我的 R 数据框中提取除数字之外的所有列,因为this 问题我使用了相同的方法,只是在is.numeric() R 函数中添加了一个非门,但它不起作用

这给出了所有的数值数据,

x<-iris %>% dplyr::select(where(is.numeric))

但这并没有按预期工作,

x<-iris %>% dplyr::select(where(!is.numeric))

注意:最后输出数据框应该只包含鸢尾花数据集中的物种列

【问题讨论】:

【参考方案1】:

来自tidyversepurrr 包完全符合purrr::keeppurrr::discard 的要求

library(purrr)

x <- iris %>% keep(is.numeric)

通过这些代码,您在keep 函数中设置了一个逻辑测试,只有通过测试的列才会保留。

要反转该操作并实现您的愿望,您也可以使用discard from purrr

x <- iris %>% discard(is.numeric)

您可以将discard 视为keep,但使用!is.numeric

或者dplyr

x <- iris %>% select_if(~!is.numeric(.))

【讨论】:

qual % select_if(~!is.numeric(.)) 如果你可以用这个更新答案,它对我也有用

以上是关于提取R数据框中除数字以外的所有列[重复]的主要内容,如果未能解决你的问题,请参考以下文章

小写数据框中除 xyz 之外的所有字符列

如何选择表格中除一列以外的所有列?

将数据框中的因子列转换为数字类型列[重复]

从R中的数据框中子集列[重复]

在 R 的数据框中查找重复的行(基于 2 列)

r 从包含 2 列组合的副本的数据框中删除行 [重复]