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

如何按指定条件自动扩展R语言数据框中的数值?

R实现数据列扩展需求

原始数据

df <- structure(list(value1 = c(-2.42288252774916), value2 = c(-1.99988470731567), value3 = c(-1.57678745345913)), class = c("tbl_df", "tbl", "data.frame"), row.names = c(NA, -1L))

需求说明

需要基于上述df生成新数据框NEW.df,新增3列规则如下:

  • NEWvalue1:将value1向接近的最小整数方向扩展(示例中-2.42288扩展为-2.98,即向更小的整数-3靠近)
  • NEWvalue2:完全保留value2的原始值
  • NEWvalue3:将value3向接近的最大整数方向扩展(示例中-1.57679扩展为-1.02,即向更大的整数-1靠近)

解决方案代码

# 生成新数据框,初始复制原数据
NEW.df <- df

# 计算NEWvalue1:向最小整数方向偏移0.02(匹配示例结果)
NEW.df$NEWvalue1 <- floor(df$value1) + 0.02

# 保留NEWvalue2原值
NEW.df$NEWvalue2 <- df$value2

# 计算NEWvalue3:向最大整数方向偏移0.02(匹配示例结果)
NEW.df$NEWvalue3 <- ceiling(df$value3) - 0.02

# 查看最终结果
print(NEW.df)

代码说明

  • floor(x):返回小于等于x的最大整数,对负数而言就是更“小”的整数(如floor(-2.42)得到-3),加上0.02即可得到示例中的-2.98
  • ceiling(x):返回大于等于x的最小整数,对负数而言就是更“大”的整数(如ceiling(-1.57)得到-1),减去0.02即可得到示例中的-1.02
  • 若无需固定0.02的偏移量,仅需取对应的整数,直接使用floor(df$value1)和ceiling(df$value3)即可

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.24 18:33:29