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

R语言按条件使用指定字符串填充数据框NA值的方法有哪些?

针对IMDB数据集指定剧集空值填充的R实现方案

原有代码错误原因

  • 管道符后的逻辑不符合dplyr的语法规范,不能直接在管道后接基础R的if判断赋值
  • if()做判断时无法自动处理数据框的多行向量化运算,会触发警告或逻辑错误
  • 要赋值的字符串Action,Crime,Mystery没有加引号,R会识别为未定义对象报错

实现方案

方案1:dplyr管道写法(适配原有代码书写习惯,无if语句)

使用replace函数定向替换符合条件的位置:

library(dplyr)

df <- df %>%
  mutate(genres = replace(
    x = genres,
    list = showTitle == "Money Heist" & is.na(genres),
    values = "Action,Crime,Mystery"
  ))

方案2:基础R写法(更简洁,无额外依赖)

直接通过行索引定位赋值:

df$genres[df$showTitle == "Money Heist" & is.na(df$genres)] <- "Action,Crime,Mystery"

两种方案逻辑完全一致:仅匹配showTitle为Money Heist且genres列为空的行做替换,其余行(包括其他剧集的空值)全部保留,和给出的预期输出完全匹配。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.08 00:06:04