首页 > 解决方案 > 如何使用 dplyr 从 R 中的数据框中删除所有整数列?

问题描述

我想使用 dplyr 从我的数据框中删除所有整数列,只留下非整数数字列。我想我可以像下面这样:

注意:我意识到我可以在下面的示例中选择数字,但我的实际数据集除了数字和整数之外还有其他变量类型。

library(dplyr)
mydata <- USArrests

mydata2 <- mydata %>% 
  select(!is.integer)

但这给出了错误:

!is.integer 中的错误:无效的参数类型

mydata2 <- mydata %>% 
  select(-is.integer)

错误:

-x 中的错误:一元运算符的参数无效

以下有效,但我也想知道如何在 dplyr 中执行此操作。

mydata_temp <- mydata[, sapply(mydata, function(x) !is.integer(x))]
mydata_numeric_vars <- mydata_temp %>% 
  select_if(is.numeric)

有什么建议么?似乎这在 dplyr 中应该相当简单,但是在环顾堆栈时,我似乎找不到类似的 Q/A 吗?

标签: rdplyr

解决方案


一种可能的解决方法:

mydata %>% 
  .[ , !sapply(., is.integer)]

推荐阅读