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

R语言新手求助:如何生成序列(1,2,2,3,4,4,…,50,50)

生成指定序列的R语言实现

先拆解下这个序列的规律:1到50里,所有奇数(1、3、5…49)各出现1次,所有偶数(2、4、6…50)各出现2次,最终按顺序排列成目标序列。下面给两种适合新手的实现方法:


方法一:向量操作(简洁高效)

用R的向量函数快速生成,步骤清晰:

  • 先生成1到50中的奇数和偶数向量:
    odds <- seq(1, 49, by = 2)  # 生成1、3、5…49
    evens <- seq(2, 50, by = 2) # 生成2、4、6…50
    
  • 把每个偶数重复2次,再和奇数按顺序交错合并:
    evens_repeated <- rep(evens, each = 2) # 把每个偶数复制两次
    result <- c(rbind(odds, evens_repeated)) # 交错合并两个向量
    
  • 运行后打印result就能看到目标序列。

方法二:循环构建(更直观易懂)

如果觉得向量操作有点绕,用循环一步步添加元素,新手更容易理解逻辑:

result <- c() # 先创建空向量存结果
for (i in 1:50) {
  if (i %% 2 == 0) {
    # 如果是偶数,就往结果里加两次这个数
    result <- c(result, i, i)
  } else {
    # 如果是奇数,就加一次
    result <- c(result, i)
  }
}
  • 循环结束后,result就是你要的序列。

可以用length(result)验证长度:25个奇数(各1次)+25个偶数(各2次),总长度应该是75,运行后返回75就说明生成正确。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.18 04:15:37