这是一个简单的数据集:
mydf <- tibble(country = rep(c("UK", "US"), each = 3),
date = rep(c("Day1", "Day2", "Day3"), times = 2),
cases = seq(1:6))
# A tibble: 6 x 3
country date cases
<chr> <chr> <int>
1 UK Day1 1
2 UK Day2 2
3 UK Day3 3
4 US Day1 4
5 US Day2 5
6 US Day3 6
我想创建一个新列“ part_us” mutate()
,如果“ country”中的值等于“ US”,则显示TRUE,如果不是“ US”,则显示FALSE。
这是一个简单的任务,但我仍在学习R,并希望能对此有所帮助。
您可以在管道中使用ifelse()
inside :mutate()
dplyr
library(dplyr)
#Data
mydf <- tibble(country = rep(c("UK", "US"), each = 3),
date = rep(c("Day1", "Day2", "Day3"), times = 2),
cases = seq(1:6))
#Code
mydf <- mydf %>% mutate(part_us=ifelse(country=='US',T,F))
输出:
# A tibble: 6 x 4
country date cases part_us
<chr> <chr> <int> <lgl>
1 UK Day1 1 FALSE
2 UK Day2 2 FALSE
3 UK Day3 3 FALSE
4 US Day1 4 TRUE
5 US Day2 5 TRUE
6 US Day3 6 TRUE
接下来可以是另一种方法:(非常感谢@Qwethm):
#Code 2
mydf <- mydf %>% mutate(part_us=country=="US")
输出相同。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句