R语言数据框多列按每N行拆分转多行后堆叠的实现方法求助
实现方案
核心逻辑和你之前单列转换的逻辑保持一致,仅扩展为多列批量处理后按行堆叠即可,以下是基础R的无额外依赖实现:
# 第一步:构造你提供的示例输入数据 input_df <- data.frame( x = c("A", "3", "3", "6", "B", "4", "3", "7", "C", "7", "3", "6"), y = c("D", "5", "7", "7", "E", "5", "3", "7", "F", "4", "6", "8"), z = c("G", "6", "4", "5", "H", "2", "4", "6", "I", "3", "9", "0") ) # 第二步:核心转换逻辑 # 遍历每一列执行单列转置规则,再把所有列的转换结果按行拼接 result_df <- do.call( rbind, lapply(input_df, function(col_data) { data.frame(matrix(col_data, ncol = 4, byrow = TRUE)) }) ) # 第三步:调整列名和行号匹配预期输出 colnames(result_df) <- c("w", "x", "y", "z") rownames(result_df) <- NULL
运行后输出的result_df即为你需要的目标结构,如果你需要调整每N行拆分的长度,只需要修改matrix函数里的ncol参数即可。
内容的提问来源于stack exchange,提问作者Ulrich Neum
相关产品推荐
相关产品推荐

