【问题标题】:Collapse some categorical variables in tidyverse折叠在十里verse中的一些分类变量
【发布时间】:2019-03-29 06:25:02
【问题描述】:

我正在处理一个包含多个位置的大型数据集。但是,对于我的一项分析,需要将两个位置“Wells1”和“Wells2”折叠成一个位置“Wells”。所有其他位置应保留其当前名称。

有几个很好的问题展示了如何使用不同的基本 R 函数(#1#2),但我想知道是否有人知道哪个 tidyverse 函数可以实现相同的目标。

到目前为止,我唯一想到的是:

case_when(recvDeployName %in% c("Wells1", "Wells2") ~ "Wells") 

但是,我收到以下错误消息: 错误:案例 1 (.) 必须是双边公式,而不是列表

我怀疑,我需要指定其他类别应该做什么,但我不确定那是什么。

【问题讨论】:

  • case_when(recvDeployName %in% c("Wells1", "Wells2") ~ "Wells", TRUE ~ recvDeployName)
  • 感谢您的快速回复,但我仍然收到相同的错误消息。

标签: r dplyr


【解决方案1】:

case_when 可以写成

case_when(recvDeployName %in% c("Wells1", "Wells2") ~ "Wells",
                TRUE ~ recvDeployName)

【讨论】:

  • 这很有意义,但我仍然收到相同的错误消息。这可以与其他几个功能一起使用吗?就像在这里: tagRecvSummary_tree2 % case_when(recvDeployName %in% c("Wells1", "Wells2") ~ "Wells", TRUE ~ recvDeployName) #%>% group_by(mfgID) %> % 总结(Indi=length(unique(mfgID)), Locations=length(unique(recvDeployName)))
  • @user3220999 什么是df.alltags_tree.sub?是data.frame,那么你可以在mutate中使用case_when,即df.alltags_tree.sub %>% mutate(recvDeployName = case_when(recvDeployName %in% c("Wells1", "Wells2") ~ "Wells", TRUE ~ recvDeployName))
  • 是的,它是一个数据框。谢谢!效果很好!
猜你喜欢
  • 1970-01-01
  • 2018-02-14
  • 2011-03-17
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-10-22
  • 1970-01-01
相关资源
最近更新 更多