R语言数据重塑:将多行数据合并到一行
R语言数据重塑:将多行数据合并到一行
本文将介绍如何使用R语言将数据框中相同名称的多行数据合并到一行。假设你有一个数据框,其中包含多个 'Name' 列,并且你想将相同名称的行的 'A1' 到 'A6' 内容按原有排列顺序合并到同一行的相邻的六列数据框内。
以下是使用 dplyr 和 tidyr 包实现此目标的步骤:
1. 加载必要的包Rlibrary(dplyr)library(tidyr)
2. 创建示例数据框Rdata <- read.table(text = 'Name A1 A2 A3 A4 A5 A6SC-2 80.5 70.9 77.5 72.1 73.2 62.2SC-3 63.2 57.5 67.5 73.5 65.7 64.2SC-4 69.9 65.0 70.7 76.1 67.5 75.5SC-6 69.5 64.2 56.2 62.5 71.2 64.5SC-7 69.7 67.5 68.6 69.5 71.2 72.5SC-8 65.9 62.5 73.2 57.4 67.1 53.5SC-9 69.8 73.1 63.5 70.6 72.1 65.5SC-10 80.5 65.5 70.1 62.5 68.4 77.6SC-11 69.4 68.3 64.3 70.5 67.1 59.6SC-12 62.6 60.8 68.1 68.5 67.5 60.8SC-16 68.1 68.5 66.1 53.4 61.5 54.5SC-17 56.2 51.5 59.5 54.0 63.2 58.5SC-18 68.2 68.2 61.5 61.6 74.5 62.1', header = TRUE)
3. 使用 dplyr 和 tidyr 进行数据重塑Rresult <- data %>% group_by(Name) %>% mutate(Column = rep(1:6, each = n())) %>% pivot_wider(names_from = Column, values_from = c(A1:A6), names_prefix = 'A') %>% ungroup()
4. 将结果保存到CSV文件Rwrite.table(result, 'output_file_path.csv', sep = ',', quote = FALSE, row.names = FALSE) # 将'output_file_path.csv'替换为你的输出CSV文件路径
代码说明:
group_by(Name): 根据 'Name' 列对数据进行分组。*mutate(Column = rep(1:6, each = n())): 创建一个名为 'Column' 的新列,用于标识每行数据的列索引 (1 到 6)。*pivot_wider(...): 将数据从长格式转换为宽格式。 *names_from = Column: 使用 'Column' 列的值作为新的列名。 *values_from = c(A1:A6): 使用 'A1' 到 'A6' 列的值填充新列。 *names_prefix = 'A': 为新的列名添加前缀 'A'。*ungroup(): 解除分组。*write.table(...): 将结果保存到CSV文件。
通过以上步骤,你就可以使用R语言将数据框中相同名称的多行数据合并到一行。请将代码中的 'output_file_path.csv' 替换为你想要保存整理结果的文件路径和名称。
原文地址: https://www.cveoy.top/t/topic/Oj3 著作权归作者所有。请勿转载和采集!