如何提取向量指定值合并生成符合要求结构的R tibble数据表
R 生成指定结构tibble的实现方案
首先明确各列的生成规则:
nt列:每个h取值对应完整重复一次你定义的nt向量x列:每u个元素为一组,每组第一个元素为x序列的对应值,剩余u-1个元素为0h列:每个h取值(从1到h)重复length(nt)次,覆盖当前批次的所有行
完整实现代码
# 加载依赖包 library(tidyverse) # 基础变量定义 x <- 1:5 u <- 3L data_length <- length(x) h <- 3L # 生成nt向量 nt <- seq(from = 1, to = length(x) + 1 - 1/u, by = 1/u) # 构造x列基础向量:每个x值重复u次,非首个位置置0 x_base <- rep(x, each = u) x_col <- x_base * as.integer(seq_along(x_base) %% u == 1) # 生成最终tibble result <- tibble( nt = rep(nt, times = h), x = rep(x_col, times = h), h = rep(1:h, each = length(nt)) )
结果验证
打印前10行即可验证结构是否匹配要求:
print(result, n=10)
最终结果总长度为5*3*3=45,完全符合你给出的长度要求和列结构规则。
内容的提问来源于stack exchange,提问作者MCP_infiltrator
相关产品推荐
相关产品推荐

