基于其他列值添加具有字符串值的列R [重复]

fkaflof6  于 2023-06-03  发布在  其他
关注(0)|答案(1)|浏览(150)

此问题已在此处有答案

How can I assign a value using if-else conditions in R(2个答案)
21小时前关门了。
我想在我的数据框中添加一个名为**“Opt-Numbers”的列,其中Opt-CMMOpt-MM的值基于Numbers列。如果Numbers**列中的值大于或等于4,则应在该值的同一行中添加Opt-CMM,或者如果小于4,则在同一行中添加Opt-MM。我也举了一个例子在下面的df。
给予DF。
| S.NO |数字|
| - -----|- -----|
| P1| 2|
| P2| 5个|
| P3| 2|
| P4| 2|
| P5| 3|
| P6| 4|

所需DF

| S.NO |数字|选项编号|
| - -----|- -----|- -----|
| P1| 2| Opt-MM|
| P2| 5个|Opt-CMM|
| P3| 2| Opt-MM|
| P4| 2| Opt-MM|
| P5| 3| Opt-MM|
| P6| 4| Opt-CMM|

s5a0g9ez

s5a0g9ez1#

我们可以用dplyr和case_when()来实现

library(dplyr)

示例数据

data <- structure(list(S.NO = c("P1", "P2", "P3", "P4", "P5", "P6"), Numbers = c(2, 5, 2, 2, 3, 4)), class = "data.frame", row.names = c(NA, -6L))

用筛选器创建新列

data <- data %>%
          mutate(Opt-Numbers = case_when(
                    Numbers >= 4 ~ "Opt-CMM",
                    Numbers < 4 ~ "Opt-MM"
          ))

data

相关问题