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

如何针对iris不同分组应用不同函数执行mutate生成新列A

解决方案

可以用dplyr包的case_when()函数实现分组条件逻辑,根据物种(Species)的不同应用对应计算规则:

library(dplyr)

# 初始化数据集
data <- head(iris)

# 生成新列A
data <- data %>%
  mutate(
    # 将Sepal.Length转为整数(也可直接嵌入后续计算,单独提取更清晰)
    sepal_int = as.integer(Sepal.Length),
    A = case_when(
      # 处理versicolor和virginica分组
      Species %in% c("versicolor", "virginica") ~ 1941 - sepal_int,
      # 处理setosa分组
      Species == "setosa" ~ 1940 - (sepal_int - 1) * 10
    )
  )

# 查看结果
print(data)

逻辑说明

  • 针对versicolor和virginica,1941 - 整数化的Sepal.Length刚好满足"1对应1940、2对应1939"依次减1的规则
  • 针对setosa,1940 - (整数化的Sepal.Length - 1)*10的计算逻辑:整数为1时结果1940,整数为2时结果1930,整数为3时结果1920,完全匹配需求

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.28 15:55:56