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

使用dplyr将数据框数值列乘以指定值失败,求排查代码错误

代码问题分析与修正

你的代码执行后数值未变化,核心问题是错误使用了replace()函数,同时完全没必要用到这个函数:

问题点拆解

  • replace()的正确用法是replace(向量, 要替换的位置/匹配值, 新值),你只传入了两个参数,第二个参数.x * 0.01会被当作“要替换的位置/值”,而非你想要的新计算结果,这导致函数没有执行任何有效的数值修改。
  • 你要实现的是对整个数值列做乘法运算,不需要替换特定值或位置,直接返回运算结果即可,完全不需要replace()。

修正后的代码

方法1:保留mutate_if的写法

ENID_transposed_df <- ENID_transposed_df %>% 
  mutate_if(is.numeric, ~ .x * 0.01)

方法2:dplyr 1.0.0+ 推荐的across写法(更灵活,适配后续参数化需求)

# 定义参数,后续直接修改这个变量即可
scale_factor <- 0.01

ENID_transposed_df <- ENID_transposed_df %>% 
  mutate(across(where(is.numeric), ~ .x * scale_factor))

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.26 12:52:05