【问题标题】:Transforming a 4x3 dataframe into a 1 row dataframe将 4x3 数据帧转换为 1 行数据帧
【发布时间】:2019-10-03 16:34:15
【问题描述】:

我在实验室工作,我正在努力让一台设备以一种奇怪的格式测量芳烃化合物的输出,这种格式根本不整洁,但我们的实验室管理系统软件需要它。我的初始数据框如下所示:

Aromatic_type           Concentration Concentration2
1     Monoaromáticos          6.52          83.65
2       Diaromáticos          6.39          49.89
3      Triaromáticos         22.36         125.62
4 Aromáticos Totales         36.82         311.48

我需要将它转换成这样的 1 行数据框:

Monoaromáticos Concentration Monoaromáticos Concentration2 Diaromáticos Concentration etc...
                        6.52                         83.65                       6.39

我已经尝试过tidyrreshape,但我想我还是个菜鸟,非常感谢任何帮助或建议!

【问题讨论】:

    标签: r reshape tidyr


    【解决方案1】:

    希望我能正确获取您的输入数据。

    假设输入文件看起来像(也许文本没有被引用,但为了简单起见我使用引号):

    "Aromatic_type" "Concentration" "Concentration2" 
    "Monoaromáticos" 6.52 83.65 
    "Diaromáticos" 6.39 49.89 
    "Triaromáticos" 22.36 125.62 
    "Aromáticos Totales" 36.82 311.48
    

    那么下面的代码会生成你想要的宽格式数据:

    library(tidyverse)
    
    datos <- '"Aromatic_type" "Concentration" "Concentration2"
    "Monoaromáticos" 6.52 83.65
    "Diaromáticos" 6.39 49.89
    "Triaromáticos" 22.36 125.62
    "Aromáticos Totales" 36.82 311.48'
    
    df <- read_delim(datos, delim = " ", quote = '"')[, 1:3] 
    
    df2 <- df %>% 
    pivot_longer(
      cols = c(2:3),
      names_to = "concentracion",
      values_to = "valores"
    ) %>% 
    unite(
      col = "medida",
      1:2,
      sep = " "
    ) %>% 
    pivot_wider(
      names_from = medida,
      values_from = valores
    )
    df2
    

    输出:

    # A tibble: 1 x 8
    `Monoaromáticos… `Monoaromáticos… `Diaromáticos C… `Diaromáticos C…
    <dbl>            <dbl>            <dbl>            <dbl>
    1             6.52             83.6             6.39             49.9
    # … with 4 more variables: `Triaromáticos Concentration` <dbl>,
    #   `Triaromáticos Concentration2` <dbl>, `Aromáticos Totales
    #   Concentration` <dbl>, `Aromáticos Totales Concentration2` <dbl>
    

    【讨论】:

    • 非常感谢!对不起,我忘了格式化数据。这工作得很好,我不知道 dplyr 中的枢轴函数 :-)
    猜你喜欢
    • 2017-02-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-06-29
    • 2017-09-18
    • 2021-11-16
    • 2016-09-27
    相关资源
    最近更新 更多