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

如何在保留原列的同时对R数据框指定列应用函数

解决R数据框中avg_price列向上取整并修改数据框的问题

原始数据集

group_by_dn <- structure(list(designer_name = c("A Quaint Stitch", "AllSewPetite", 
"American Stitchers", "Amy Butler"), avg_price = c(7.11818181818182, 
2.785, 11.4736842105263, 11.0454545454545)), row.names = c(NA, 
-4L), class = c("tbl_df", "tbl", "data.frame"))

你之前代码的问题

ceiling(as.integer(group_by_dn$avg_price))存在两个关键问题:

  • as.integer()会直接截断小数部分(比如7.118变成7,2.785变成2),后续的ceiling()完全失去了向上取整的作用;
  • 代码仅计算了结果,但未将计算值赋值回数据框的对应列,因此原数据框不会被修改。

正确解决方法

方法1:基础R直接赋值

直接对avg_price列重新赋值,去掉多余的as.integer(),直接使用ceiling()处理原始小数:

group_by_dn$avg_price <- ceiling(group_by_dn$avg_price)

执行后查看修改结果:

group_by_dn

输出结果:

# A tibble: 4 × 2
  designer_name       avg_price
  <chr>                   <dbl>
1 A Quaint Stitch             8
2 AllSewPetite                3
3 American Stitchers         12
4 Amy Butler                 12

方法2:用dplyr包的mutate函数(适合tidyverse workflow)

如果习惯使用tidyverse工具链,可以用mutate()直接修改列并更新数据框:

library(dplyr)

group_by_dn <- group_by_dn %>%
  mutate(avg_price = ceiling(avg_price))

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.13 08:55:31