通过示例重塑数据框

问题描述 投票:0回答:1

我正在尝试重塑我的数据框架。我的数据位于长列中,我需要将这些数据分散到同一行但新的列中,如您在上面看到的。

我遇到的主要问题之一是创建新列。我最终将创建近 300 个新专栏。在我的具体问题中,我将有 A1、A2、一直到 A23,与其他变量相同,因此手动初始化列似乎不可行。

有没有办法可以循环或使其成为创建列并重塑数据框的函数?

| Column A | Column B | 
| -------- | -------- | 
| Cell 1   | Cell 2   |
| Cell 3   | Cell 4   |
| Cell 5   | Cell 6   |


| Column A | Column B | Column A1 | Column B1 | Column A2| Column B2|
| -------- | -------- | --------- | --------- | ---------| ---------|
| Cell 1   | Cell 2   |  Cell 3   |  Cell 4   | Cell 5   |  Cell 6  |


df$A1 <- NA #Initializing the new column 

df$A1[1] <- df$A[2] #Setting the value in A row 2, to A1 row 1. 
r dataframe reshape
1个回答
0
投票

我们可以这样做。主要功能是创建

id
列并在转为长格式后进行分组:

library(dplyr)
library(tidyr)

df %>% 
  mutate(id = row_number()) %>% 
  pivot_longer(-id) %>% 
  mutate(name = paste(name, id), .keep = "unused") %>% 
  pivot_wider(names_from = name, values_from = value)
  `ColA 1` `ColB 1` `ColA 2` `ColB 2` `ColA 3` `ColB 3`
  <chr>    <chr>    <chr>    <chr>    <chr>    <chr>   
1 Cell 1   Cell 2   Cell 3   Cell 4   Cell 5   Cell 6  
© www.soinside.com 2019 - 2024. All rights reserved.