【问题标题】:if else function issue about returning result based on original data frame [duplicate]if else 函数关于基于原始数据框返回结果的问题[重复]
【发布时间】:2018-03-09 16:08:08
【问题描述】:

如果我有以下数据框

df <- data.frame(name = c("sam", "ken", "mary", "kate"),
                 state = c("dead", "dead", "alive", "dead"))

我想创建一个名为 success 的新二进制变量,如果人们死亡,它等于 1,如果人们幸存,它等于 0。像这样:

df <- data.frame(name = c("sam", "ken", "mary", "kate"),
                 state = c("dead", "dead", "alive", "dead"),
                 result = c(0, 0, 1, 0))

如何使用 ifelse 函数在 R 中编写推荐?非常感谢!

【问题讨论】:

  • as.numeric(df$V2 == "alive")

标签: r


【解决方案1】:

要了解更多关于 R 中的数据转换,我推荐https://www.tidyverse.org/learn/

特别是http://r4ds.had.co.nz/transform.html


df <- data.frame(name = letters[1:4], state = c("dead", "dead", "alive", "dead"))

library(dplyr)
#> 
#> Attaching package: 'dplyr'
#> The following objects are masked from 'package:stats':
#> 
#>     filter, lag
#> The following objects are masked from 'package:base':
#> 
#>     intersect, setdiff, setequal, union

df %>%
  mutate(result = if_else(state == "alive", 1, 0))
#>   name state result
#> 1    a  dead      0
#> 2    b  dead      0
#> 3    c alive      1
#> 4    d  dead      0

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2019-12-29
    • 1970-01-01
    • 1970-01-01
    • 2013-04-26
    • 1970-01-01
    • 1970-01-01
    • 2021-12-31
    • 1970-01-01
    相关资源
    最近更新 更多