【问题标题】:Selecting multiple columns in R wide data to pipe an operation [closed]选择 R 宽数据中的多个列以管道操作 [关闭]
【发布时间】:2021-08-03 20:50:54
【问题描述】:

我有一个宽格式的数据。例如

dt <- (age, gender, income, EDU1990, EDU1991, EDU1992, EDU1993, EDU1994, EDU1995 ..... EDU2021)

我正在尝试使用 EDU 选择所有列并一次重新编码所有变量中的变量。我尝试使用 grep 功能,但它不起作用。示例:

grep(^EDU, dt) %>%
  mutate(EDU = recode(^EDU, "highschool"=1, "college"=2)

是否有一种更简单/更好的方法来选择这些多列并一次通过管道传递一个函数?

【问题讨论】:

  • 欢迎来到 SO,rais!当代码不完整时,有时试图帮助一个问题可能很困难,通常只是为了“简洁”。在这种情况下,不清楚dtlist 还是data.frame 或类似名称,也不清楚您是在字面上使用grep(^EDU 还是grep("^EDU"。此外,grep 将返回整数(或integer(0)),而不是dplyr::mutate 期望的data.frame。请考虑稍微填写一下问题,以使其具有独立性和可重复性,并使用最少的示例数据和语法正确的代码。谢谢!
  • 一些链接提供了很好的讨论和如何做到这一点的例子包括:stackoverflow.com/q/5963269minimal reproducible examplestackoverflow.com/tags/r/info
  • @r2evans 感谢您的欢迎。我刚从这里开始,所以我会确保下次我会更加努力地更好地提出我的问题:)
  • @r2evans 我只是想在这里更好地提出我的问题 - stackoverflow.com/questions/68672373/…。感谢cmets和指导!

标签: r recode


【解决方案1】:

我们可以使用dplyr

library(dplyr)
dt %>%
    mutate(across(starts_with('EDU'),  ~recode(., "highschool"=1, "college"=2)))

【讨论】:

  • 谢谢阿克伦。它没有用,我认为这可能是因为我没有正确地提出我的问题。这是我第二次尝试提出我的问题-stackoverflow.com/questions/68672373/…您的帮助将不胜感激!
猜你喜欢
  • 2014-08-10
  • 1970-01-01
  • 2018-03-26
  • 1970-01-01
  • 2014-01-24
  • 2021-07-23
  • 1970-01-01
  • 2019-04-26
  • 2021-08-23
相关资源
最近更新 更多