【问题标题】:Select only numerics or integers仅选择数字或整数
【发布时间】:2019-07-26 06:43:53
【问题描述】:

我只想选择具有dplyr 的整数和数字数据类型的列。

有一篇关于选择数字数据类型的列的帖子

dat <- dplyr::select_if(dat, is.numeric)

我想知道是否可以使用类似的东西来选择既是数字又是整数的列:

dat <- dplyr::select_if(dat, is.numeric && is.integer)

or

dat <- dplyr::select_if(dat, c(is.numeric, is.integer))

虽然上述两种方法似乎都不起作用。

【问题讨论】:

  • 整数也是数字,例如class(1:10); is.numeric(1:10),所以select_if(dat, is.numeric) 应该足够了。如果你想要例如所有数字和字符列,你可以做select_if(dat, ~is.numeric(.x) | is.character(.x))
  • @JorisChau - 我在 FlexDashBoard 上工作,我注意到选择了数字列,但在我希望同时提取两个列的编码之一中没有选择整数列。跨度>
  • 虽然 integersnumerics,但有时选择整数很重要,因此仅 is.integer 就足够了。
  • @NelsonGon: 但只有is.integer 不会选择非整数数字列?
  • @NelsonGon - 我想知道,如果我们省略任何字符类型的变量,那么我们可以得到一个包含诸如整数、数字、因子等变量的 df。对吧?

标签: r dplyr


【解决方案1】:

既是整数又是数字的变量是整数(每个整数也是数字)。因此,要么使用 is.numeric 捕获所有整数和实数,要么使用 as.integer 仅捕获整数。

如果您不太喜欢使用 dplyr,这将可以(在此处使用 is.numeric)。

dat_selected <- dat[sapply(dat, is.numeric)]

【讨论】:

  • 只需使用Filter(is.numeric, df)
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2012-03-06
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-01-16
  • 2011-08-17
  • 2017-02-07
相关资源
最近更新 更多