【问题标题】:How to Merge two columns into one in R如何在R中将两列合并为一列
【发布时间】:2021-01-02 17:44:05
【问题描述】:

我有两列,我正在尝试将两列合并为一列。

library(tibble)
a <- tribble(
    ~Life_Expectancy_At_Birth_1960, ~Life_Expectancy_At_Birth_2013,
    65.5693658536586,                75.3286585365854,
    32.328512195122,                 60.0282682926829,
    32.9848292682927,                51.8661707317073,
    62.2543658536585,                77.537243902439,
    52.2432195121951,                77.1956341463415,
)

我想要的结果是:

    Life_Expectancy
    65.5693658536586 
    75.3286585365854   
    32.328512195122  
    60.0282682926829  
    32.9848292682927    
    51.8661707317073 
    62.2543658536585  
    77.537243902439  
    52.2432195121951  
    77.1956341463415

等等

任何帮助都会很棒。谢谢!

【问题讨论】:

    标签: r dataframe merge


    【解决方案1】:

    这是通过pivot_longer() 重新整形的一种方法:

    dat <- tibble::tribble(
        ~Life_Expectancy_At_Birth_1960,                   ~Life_Expectancy_At_Birth_2013,
    65.5693658536586, 75.3286585365854, 
    32.328512195122,  60.0282682926829, 
    32.9848292682927, 51.8661707317073, 
    62.2543658536585, 77.537243902439, 
    52.2432195121951, 77.1956341463415)
    library(tidyr)
    library(dplyr)
    
    dat %>% mutate(obs= 1:n()) %>% 
        pivot_longer(-obs, names_to="variable", values_to="var") %>% 
        arrange(obs, variable) %>% 
        select(-c(obs, variable))
    
    # # A tibble: 10 x 1
    #    var
    #    <dbl>
    # 1  65.6
    # 2  75.3
    # 3  32.3
    # 4  60.0
    # 5  33.0
    # 6  51.9
    # 7  62.3
    # 8  77.5
    # 9  52.2
    # 10  77.2
    

    【讨论】:

      【解决方案2】:

      您可能想要来自data.table 包的melt。如果没有看到您的整个数据的更多细节,很难比这更具体。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2015-06-20
        • 2020-11-08
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2023-02-14
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多