dplyr在列内更改分组名称

huangapple go评论98阅读模式
英文:

dplyr change group names within a column

问题

如何使用 dplyr 在列内更改分组名称?

示例数据:

  1. library(dplyr)
  2. # 鸢尾花数据集
  3. dat <- iris
  4. # 唯一的分组名称
  5. unique(dat$Species)
  6. # 尝试更改Species列内的分组名称(例如,setosa = Group 1)
  7. dat <- dat %>%
  8. mutate_at(Species, c('setosa' = 'Group 1',
  9. 'versicolor' = 'Group 2',
  10. 'virginica' = 'Group 3')) # 报错信息:Error in check_dot_cols(.vars, .cols) : object 'Species' not found

有很多关于如何使用 dplyr 更改列名的示例,但我很难找到如何在列内更改分组名称的示例。

英文:

How can I use dplyr to change group names within a column?

Example Data:

  1. library(dplyr)
  2. # Iris dataset
  3. dat &lt;- iris
  4. # Unqiue group names
  5. unique(dat$Species)
  6. # Attemp to change group names within the Species column (e.g., setosa = Group 1)
  7. dat &lt;- dat %&gt;%
  8. mutate_at(Species, c(&#39;setosa&#39; = &#39;Group 1&#39;,
  9. &#39;versicolor&#39; = &#39;Group 2&#39;,
  10. &#39;virginica&#39; = &#39;Group 3&#39;)) # throws error message: Error in check_dot_cols(.vars, .cols) : object &#39;Species&#39; not found

There are plenty of examples on SO and google on how to change a column name using dplyr but I could not easily find an example of how to change group names within a column.

答案1

得分: 0

使用@JonSpring的答案

  1. dat &lt;- dat %&gt;%
  2. mutate(Species = case_match(Species,
  3. &quot;setosa&quot; ~ &quot;Group 1&quot;,
  4. &#39;versicolor&#39; ~ &#39;Group 2&#39;,
  5. &#39;virginica&#39; ~ &#39;Group 3&#39;))
英文:

Using @JonSpring answer

  1. dat &lt;- dat %&gt;%
  2. mutate(Species = case_match(Species,
  3. &quot;setosa&quot; ~ &quot;Group 1&quot;,
  4. &#39;versicolor&#39; ~ &#39;Group 2&#39;,
  5. &#39;virginica&#39; ~ &#39;Group 3&#39;))

huangapple
  • 本文由 发表于 2023年6月9日 00:05:48
  • 转载请务必保留本文链接:https://go.coder-hub.com/76433783.html
匿名

发表评论

匿名网友

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen:

确定