【问题标题】:r why if_else converted character to numbers and how to keep characterr 为什么 if_else 将字符转换为数字以及如何保留字符
【发布时间】:2020-06-07 12:16:40
【问题描述】:

我的数据集中有字符变量,在 if_else 之后它们被转换为数字,而我需要它们成为字符(稍后我会将它们转换为因子)。 有人知道怎么解决吗?

我有这几行代码

data <- data %>%
  mutate(
    flag_elevator = if_else(elevator_type == 'nincs megadva'|is.na(elevator_type), 1, 0),
    elevator_type = if_else(elevator_type == 'van', 1, 0))

【问题讨论】:

  • 在 1 和 0 附近添加引号
  • 您也可以使用ifelse 而不是if_else 来解决此问题。

标签: r if-statement dplyr


【解决方案1】:

您可以按照@AshishSinghal 的建议进行操作:

if_else(elevator_type == 'van', '1', '0')

或者因为它是 0/1,你可以取消 if_else:

data = data.frame(elevator_type = sample(c('nincs megadva','van',NA),100,replace=TRUE))

tibble(data) %>%
mutate(
flag_elevator = +(elevator_type == 'nincs megadva'|is.na(elevator_type)),
elevator_type = as.character(+(elevator_type == 'van')))

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-11-07
    • 1970-01-01
    • 1970-01-01
    • 2016-03-11
    相关资源
    最近更新 更多