You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

R语言如何将字符型变量转换为逻辑型:问卷非空转TRUE空值转FALSE

修正方案

plyr::revalue 本身没有内置else这类默认 fallback 的参数,所以你原来的写法无法生效。你可以用以下几种更简单的方案实现需求:

方案1:基础R实现(无需加载任何包)

直接通过逻辑判断完成转换,同时覆盖空字符串和NA值两种常见的未填写场景:

dataset$variable <- !is.na(dataset$variable) & dataset$variable != ""

如果需要把仅输入空格的无效回答也判定为未填写,可以加trimws()去掉首尾空格再判断:

dataset$variable <- !is.na(dataset$variable) & trimws(dataset$variable) != ""

方案2:dplyr 管道流实现

如果你习惯用tidyverse的管道写法,可以用if_else或者case_when实现:

library(dplyr)
# 用if_else实现
dataset <- dataset %>%
  mutate(variable = if_else(!is.na(variable) & trimws(variable) != "", TRUE, FALSE))

# 用case_when实现(扩展性更强,后续要加其他判断规则更方便)
dataset <- dataset %>%
  mutate(variable = case_when(
    is.na(variable) ~ FALSE,
    trimws(variable) == "" ~ FALSE,
    .default = TRUE
  ))

注意.default参数需要dplyr 1.1.0及以上版本支持,作用就是匹配所有不符合前面条件的情况,等价于你想要的else效果。

内容的提问来源于stack exchange,提问作者monete

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.03 16:57:03