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

如何用列间除法替换tibble指定列的值(无需使用mutate)

问题分析与解决

你的代码只是计算出了x2至x5列除以x1列的结果,但没有将计算结果赋值回原数据框,所以原数据x不会有任何变化,这就是代码没达到预期效果的原因。

可行解决方案

方法1:直接索引赋值

通过索引定位目标列,将运算结果赋值回去,直接修改原数据框:

x <- 
tibble(
  x1 = rep(2,10),
  x2 = rep(5,10),
  x3 = rep(5,10),
  x4 = rep(5,10),
  x5 = rep(5,10)
)
# 赋值替换目标列
x[, 2:5] <- x[, 2:5] / x[, 1]

方法2:用dplyr的across修改原列(无需新建列)

如果你习惯tidyverse语法,用mutate()配合across()可以直接修改指定列,不会生成新列,同样符合你的需求:

library(dplyr)
x <- 
tibble(
  x1 = rep(2,10),
  x2 = rep(5,10),
  x3 = rep(5,10),
  x4 = rep(5,10),
  x5 = rep(5,10)
)
x <- x %>% mutate(across(2:5, ~ .x / x1))

内容的提问来源于stack exchange,提问作者Jorge Hernández

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.24 23:48:15