r - 从长到宽重塑并粘贴列名
问题描述
我有一个包含多行的长数据框。我想把它改成宽的,只剩下 1 行。
dput(df) >
structure(list(A = c(2, 4, 6), B = c(1, 3, 9), C = c(0, 1, 0)), row.names = c(NA,
-3L), class = c("tbl_df", "tbl", "data.frame"))
df >
A B C
1 2 1 0
2 4 3 1
3 6 9 0
我想将其重塑为:
df1 >
A_1 A_2 A_3 B_1 B_2 B_3 C_1 C_2 C_3
2 4 6 1 3 9 0 1 0
解决方案
您可以在数据中创建行号列并获取宽格式数据。
library(dplyr)
library(tidyr)
df %>%
mutate(row = row_number()) %>%
pivot_wider(names_from = row, values_from = A:C)
# A_1 A_2 A_3 B_1 B_2 B_3 C_1 C_2 C_3
# <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl>
#1 2 4 6 1 3 9 0 1 0
推荐阅读
- angular - ngFor 基于类型
- java - Spring 扩展 Authentication 对象以保持控制器干燥
- algorithm - 当我有预测和地面实况文件(原始图)时,如何使用 spark 和 scala 计算 TP、TN、FP 和 FN?
- php - PHPSpreadsheet - Spreadsheet.php 无法打开流:没有这样的文件或目录
- python - 如何正确安装 OpenOPC?
- angular - 如何在运行时以角度生成类型
- javascript - 将字符串化的 JSON 数据呈现到表中
- encryption - 如何实现零停机密钥轮换
- c# - .Net Core -> 如何使用 1024 位密钥解密
- spring - Spring Boot 2 Hibernate Update 未插入