【问题标题】:Merging all the colunms in R with colunm names将 R 中的所有列与列名合并
【发布时间】:2020-09-17 18:51:00
【问题描述】:

我有以下数据

> df
X1  X2  X3 
1   3   4  
1   0   0  
1   1   0 

我想合并所有列,以便最终输出为

new colName
1     X1
1     X1
1     X1
3     X2
0     X2
1     X2
4     X3
0     X3
0     X3

【问题讨论】:

标签: r dataframe dplyr tidyverse


【解决方案1】:

你可以试试stack

> setNames(stack(df),c("new","colName"))
  new colName
1   1      X1
2   1      X1
3   1      X1
4   3      X2
5   0      X2
6   1      X2
7   4      X3
8   0      X3
9   0      X3

数据

> dput(df)
structure(list(X1 = c(1L, 1L, 1L), X2 = c(3L, 0L, 1L), X3 = c(4L, 
0L, 0L)), class = "data.frame", row.names = c(NA, -3L))

【讨论】:

    【解决方案2】:
    library (tidyverse)
    
    
    
    pivot_longer(df,X1:X3)
    

    【讨论】:

      【解决方案3】:

      您可以尝试使用tidyr 收集列名

      library(tidyr)
      
      X1 <- c(1,1,1)
      X2 <- c(3,0,1)
      X3 <- c(4,0,0)
      
      df <- data.frame(X1, X2, X3)
      
      df <- df %>%
        gather(new, colname, X1, X2, X3)
      
      print(df)
      
        new colname
      1  X1       1
      2  X1       1
      3  X1       1
      4  X2       3
      5  X2       0
      6  X2       1
      7  X3       4
      8  X3       0
      9  X3       0
      

      【讨论】:

        猜你喜欢
        • 2021-09-07
        • 2015-05-09
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2020-11-23
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多