我正在try reshape 我的数据框架.我的数据位于长列中,我需要将这些数据展开到相同的行中,但需要新的列中,如您在上面看到的.

我遇到的主要问题之一是创建新列.我将最终创建近300个新专栏.在我的确切问题中,我将使用A1,A2,一直到A23,和其他变量一样,所以手动初始化列似乎是不可行的.

有没有一种方法可以循环或使其成为创建列和reshape 数据框形状的函数?

| 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. 

推荐答案

我们可以这样做.主要功能是创建一个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  

示例数据:

df <- structure(list(ColA = c("Cell 1", "Cell 3", "Cell 5"), ColB = c("Cell 2", 
"Cell 4", "Cell 6")), class = "data.frame", row.names = c(NA, 
-3L))

R相关问答推荐

使用scale_x_continuous复制ggplot 2中的离散x轴

在ggplot的注释表格中突出显示最大值

使用R中的gt对R中的html rmarkdown文件进行条件格式设置表的单元格

根据shiny 应用程序中的数字输入更改图标 colored颜色

更新合适的R mgcv::bam模型报告无效类型(关闭).'';错误

使用R的序列覆盖

更改Heatmap Annotation对象的名称

如何对数据集进行逆向工程?

更改默认系列1以更改名称

ggplot2中的X轴显示数值,单位为百,而不是十

仅在Facet_WRAP()中的相应方面包含geom_abline()

哪一行和行和 Select 特定行,但是考虑到Nas

更新R中的数据表(使用data.table)

函数可以跨多个列搜索多个字符串并创建二进制输出变量

如何将一列中的值拆分到R中各自的列中

如何在R中改变fviz_pca_biplot中圆的边界线的 colored颜色 ?

如何使用字符串从重复的模式中提取多个数字?

将列表中的字符串粘贴到R中for循环内的dplyr筛选器中

在不对R中的变量分组的情况下取两行的平均值

Data.table条件合并