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

R中基于dataframe多列条件生成Completion Rate新列的问题

错误原因

你之前的代码报错核心有三点:

  1. R base 内置的replace()函数仅支持3个传入参数,你额外多传了第四个参数,直接触发未使用参数的报错
  2. 带空格的列名需要用反引号`包裹,使用双引号会被识别为普通字符串而非数据框列
  3. Responded是字符型列,存储的是"0%"字符串而非数字0,判断条件需匹配字符格式

正确实现(一步完成,无需提前创建新列)

推荐用dplyr的if_else()实现,逻辑清晰不易出错:

library(dplyr)

df <- df %>%
  mutate(`Completion Rate` = if_else(
    condition = Responded == "0%",
    true = NA_character_,
    false = `Response Rate`
  ))

如果偏好使用replace()写法,正确格式如下:

df <- df %>%
  mutate(`Completion Rate` = replace(
    x = `Response Rate`,
    list = Responded == "0%",
    values = NA_character_
  ))

注意事项

因为Response Rate是字符类型,空值必须使用NA_character_而非通用NA,避免类型不匹配的潜在报错。运行后调用head(df)即可得到你给出的预期输出结果。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.07 02:09:04