【问题标题】:How to create a new column using R which says TRUE/FALSE if another column displays a specific value? [duplicate]如果另一列显示特定值,如何使用 R 创建一个新列,该列显示为 TRUE/FALSE? [复制]
【发布时间】:2021-02-02 12:20:49
【问题描述】:

这是一个简单的数据集:

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

我想使用mutate() 创建一个名为“part_us”的新列,如果“country”中的值等于“US”,则显示 TRUE,如果不是“US”,则显示 FALSE。

这是一项简单的任务,但我仍在学习 R,如果能提供一些帮助,我将不胜感激。

【问题讨论】:

    标签: r dplyr


    【解决方案1】:

    您可以在dplyr 管道上的mutate() 内使用ifelse()

    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")
    

    同样的输出。

    【讨论】:

    • 正是我想要的 - 谢谢 :)
    • @Karima 太棒了!继续学习:)
    • 你也可以不用ifelsemydf %&gt;% mutate(part_us=country=="US")
    • @Qwethm 这是一个很好的建议,让我在帖子中添加您的学分!
    猜你喜欢
    • 1970-01-01
    • 2022-11-19
    • 1970-01-01
    • 1970-01-01
    • 2017-01-08
    • 1970-01-01
    • 1970-01-01
    • 2022-11-22
    • 2020-10-14
    相关资源
    最近更新 更多