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

如何用R的dplyr包mutate函数生成指定序列的新列?

在dplyr中生成从列b到列c的等长序列新列

需求说明

现有如下结构的数据框:

abc
1210
2210
3210
4210
5210

需要新增一列,值为从列b的数值(2)到列c的数值(10)的等间隔序列,序列长度与数据框行数一致,最终得到如下结构:

abc新列
12102
22104
32106
42108
521010

数据生成代码

library(tidyverse)
n=5
a = seq(1,n,length.out=n)
b = rep(2,n)
c = rep(10,n)
data = tibble(a,b,c)

dplyr实现方法

因为数据框中b和c的所有值完全一致,我们可以直接生成一次等长序列并赋值给新列:

data_new <- data %>%
  mutate(新列 = seq(first(b), first(c), length.out = nrow(.)))
  • first(b)和first(c):提取列b和c的第一个值(因所有值相同,取任意一个都可以)
  • length.out = nrow(.):指定序列长度等于当前数据框的行数
  • 生成的序列会自动匹配到每一行

基础R实现方法

如果不用dplyr,也可以直接用基础R操作:

data$新列 <- seq(data$b[1], data$c[1], length.out = nrow(data))

验证结果

运行上述代码后,data_new(或修改后的data)会得到目标结构的数据框,新列的数值为2,4,6,8,10,完全符合需求。

内容的提问来源于stack exchange,提问作者Homer Jay Simpson

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.16 12:05:21