重新排列 R 中的表

问题描述 投票:0回答:1

对于数据集,有两种存储条件,一种是24小时,一种是48小时。测量每种储存条件下的脂质浓度。

目前数据排列如下:

treatment |Lipid 1 | Lipid 2 | Lipid 3
24hr      |X
24hr
24hr
48hr
48hr
48hr

但我需要重新安排它:(https://i.stack.imgur.com/FJSt8.png)

我需要什么代码?谢谢您的帮助!

这是我尝试过的:(https://i.stack.imgur.com/K8mfL.png)

r
1个回答
0
投票

试试这个,注意在我的示例数据中,我们需要提供一个

values_fn
参数来聚合有多个值的地方。

首先,我们需要

pivot_longer
获取一列中的所有值,然后我们可以向后旋转更宽,将小时放入各自的列中。

library(tidyverse)

data %>% pivot_longer(cols=starts_with("Lipid")) %>% 
  pivot_wider(names_from = treatment, values_from = value, values_fn = sum)

data <- data.frame(
  treatment = c("24hr", "24hr", "24hr", "48hr", "48hr", "48hr"),
  Lipid1 = c(10, 12, 9, 25, 28, 23),
  Lipid2 = c(15, 18, 14, 30, 33, 29),
  Lipid3 = c(20, 24, 19, 35, 38, 34)
)

# A tibble: 3 × 3
  name   `24hr` `48hr`
  <chr>   <dbl>  <dbl>
1 Lipid1     31     76
2 Lipid2     47     92
3 Lipid3     63    107
© www.soinside.com 2019 - 2024. All rights reserved.