如何对R中的数据进行变异以将复制品包装在一起

时间:2019-04-15 16:27:46

标签: r dplyr tidyr mutate

我有此数据

df <- structure(list(
  Replicate = c(1L, 1L, 3L, 3L), 
  VF = c(2, 2, 1.7, 1.95), 
  VI = c(2.15, 2.05, 1.7, 2.2)), 
row.names = c(1L, 2L, 4L, 5L), 
class = "data.frame")

如何对这些数据进行变异以使两个样本(VI和VF)在列中均具有重复项?我想将VF_Rep1 VF_Rep3 VI_Rep1 VI_Rep3作为新列。

1 个答案:

答案 0 :(得分:1)

我们将{VF},'VI'列gather设置为'long'格式,然后创建一个按'Replicate','key'分组的序列,然后spread将其返回到'wide'格式

library(tidyverse)
df %>% 
  gather(key, val, VF:VI) %>% 
  group_by(Replicate = paste0("Rep", Replicate), key) %>% 
  mutate(rn = row_number()) %>% 
  unite(RepK, key, Replicate) %>% 
  spread(RepK, val)