R:根据OR条件创建具有多个级别的新变量[重复]
Posted
技术标签:
【中文标题】R:根据OR条件创建具有多个级别的新变量[重复]【英文标题】:R: Create new variable with multiple levels based on OR conditions [duplicate] 【发布时间】:2018-09-14 09:48:50 【问题描述】:我正在尝试基于包含不同治疗“NDC”代码的变量创建一个名为“txtype”(治疗类型)的新变量。在这个“txtype”变量中,我想创建多个级别来指示实际的治疗类型。
到目前为止,我只知道如何为实际治疗类型创建更高级别的变量:
data$typeA <- data, NDC %in% c("11111", "22222", "33333"))
但我想做的是创建 data$txtype,其中 txtype 具有从 typeA 到 typeG 的 LEVELS。例如,在这个新变量 txtype 中,级别 typeA 的 NDC 为 11111、22222、33333; typeB 的 NDC 为 44444、55555 等,最多 7 种。
对于这个基本问题,如果已经发布了类似的内容,我提前道歉 - 如果您能指出正确的方向,我将不胜感激!
编辑:很抱歉这次编辑迟到了。 case_when 很优雅,但没有做我想要的!我正在尝试创建一个名为“txtype”的变量,其中包含多个名为“typeA”、“typeB”等的 LEVELS。下面是来自示例数据的两列,包括主题 ID 和变量“NDC”。第三列是我希望根据 NDC 值创建的。
ID NDC txtype
1 11111 typeA
1 44444 typeB
2 22222 typeA
2 33333 typeA
2 55555 typeC
【问题讨论】:
我认为我不同意@CalumYou,但您的问题需要更多细节。请通过添加示例数据使此问题可重现。 (我怀疑这可以通过使用查找data.frame
然后使用merge()
来解决,但这还有待观察。)
【参考方案1】:
查看dplyr::case_when
。它允许您指定矢量化的if
。所以这将是这样的:
library(dplyr)
data %>%
mutate(
txtype = case_when(
NDC %in% c("11111", "22222", "33333") ~ "typeA",
NDC %in% c("44444", "55555") ~ "typeB"
)
)
【讨论】:
以上是关于R:根据OR条件创建具有多个级别的新变量[重复]的主要内容,如果未能解决你的问题,请参考以下文章
我可以根据 r 中的其他两个条件创建一个变量的多个类别吗? [复制]
根据给定的系列创建具有 0 和 1 值的新数据框列 [重复]
如何使用具有三个级别的 x 变量和比例不相关的二分 y 变量创建条形图 [重复]