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

如何在同一代码块中正确使用dplyr的rename与mutate函数?

问题修正方案

方案1报错的核心原因:在管道链中你直接引用了原始数据框dat,但此时dat还未被rename修改,不存在newX列。管道每一步的操作对象是前一步处理后的数据集,而非原始的dat,必须引用当前管道传递的数据集而非原始变量名。

以下是几种修正后的方案1代码:

方法1:直接引用列名结合cbind

dat %>%
  rename(newX = x) %>%
  mutate(z = rowSums(cbind(newX, y) == 1))

方法2:用select指定当前数据集的列

dat %>%
  rename(newX = x) %>%
  mutate(z = rowSums(select(., newX, y) == 1))

方法3:使用.data代词引用当前数据集

dat %>%
  rename(newX = x) %>%
  mutate(z = rowSums(.data[c("newX", "y")] == 1))

这三种方法都能正确调用rename后的newX列,完成新列z的计算。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.20 02:43:11