【问题标题】:How can I select only the dummy variable columns?如何仅选择虚拟变量列?
【发布时间】:2021-04-30 00:32:21
【问题描述】:

有没有办法只选择数据框中的那些列,其中列中的值一次为 0 或 1?

我有一个包含各种值的数据框,包括各种字符串和数字。

我尝试使用 dplyr select,但找不到评估列中包含的值的方法。

示例数据如下所示。

data %>% 
  tribble(
    ~id, ~gender, ~height, smoking,
    1, 1, 170, 0,
    2, 0, 150, 0,
    3, 1, 160, 1
  )

【问题讨论】:

  • 您的data %>% tribble(.) 对我来说没有意义,tribble 不会像这样将帧作为输入; smoking 应该是 ~smoking
  • 对不起。我有点误会了。无论如何,非常感谢你。问题已经解决了!

标签: r dplyr tidyverse


【解决方案1】:

您可以将函数(或 rlang-tilde 函数)传递给 select_if,并查找仅包含 0:1 的列。

tribble(
    ~id, ~gender, ~height, ~smoking,
    1, 1, 170, 0,
    2, 0, 150, 0,
    3, 1, 160, 1
  ) %>%
  select_if(~ all(. %in% 0:1))
# # A tibble: 3 x 2
#   gender smoking
#    <dbl>   <dbl>
# 1      1       0
# 2      0       0
# 3      1       1

如果您在虚拟变量列中可能有 NA,您可能希望在谓词中使用 %in% c(0:1, NA)

【讨论】:

  • 由于您是新手,请注意:慢慢来,确保它有效,然后......在stackoverflow上,当答案充分解决问题时,请accept it(复选框下方投票箭头,答案左侧)。它不仅仅是给出代表点,它为任何后续读者提供了问题的结束。再说一次,绝对不急,但既然你是新来的,我想在你离开之前给你这个提示。谢谢!
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-07-20
  • 2010-11-08
  • 2012-09-27
  • 1970-01-01
  • 2018-07-15
  • 2018-03-11
相关资源
最近更新 更多