r语言 - 使用唯一ID重塑数据框,并根据相应的值将行转置为列



我有一个像下面这样的数据框架

<表类> 样本ID 参数值 单位 tbody><<tr>1苹果30 g1梨15磅1organge20公斤2苹果2g2梨3磅2橙色10公斤3苹果15 g3梨23磅3橙色12公斤

我们可以将'Parameter'和'Unit'列连接为一个列,然后使用pivot_wider重塑为'wide'格式

library(dplyr)
library(stringr)
library(tidyr)
df1 %>% 
mutate(Parameter = sprintf('%s_value_unit(%s)', Parameter, Unit),
.keep = "unused") %>%
pivot_wider(names_from = Parameter, values_from = Value)

与产出

# A tibble: 3 × 4
SampleID `apple_value_unit(g)` `pear_value_unit(lb)` `orange_value_unit(kg)`
<int>                 <int>                 <int>                   <int>
1        1                    30                    15                      20
2        2                     2                     3                      10
3        3                    15                    23                      12

数据
df1 <- structure(list(SampleID = c(1L, 1L, 1L, 2L, 2L, 2L, 3L, 3L, 3L
), Parameter = c("apple", "pear", "orange", "apple", "pear", 
"orange", "apple", "pear", "orange"), Value = c(30L, 15L, 20L, 
2L, 3L, 10L, 15L, 23L, 12L), Unit = c("g", "lb", "kg", "g", "lb", 
"kg", "g", "lb", "kg")), class = "data.frame", row.names = c(NA, 
-9L))

最新更新