如何在R中自动化转置?

iswrvxsc  于 2023-05-26  发布在  其他
关注(0)|答案(1)|浏览(83)

我有一个数据的顺序访问的多个传粉者在长的形式(见图1)。为了分析花的恒定性数据,我想根据授粉者ID对它们进行转置(见图2)。有没有办法在R中自动化?

我已经试过将数据转换为宽格式,但从那里我不确定如何进行。这是图2,这是我期望的输出。

c2e8gylq

c2e8gylq1#

这似乎是一种奇怪的输出格式,但这里有一个例子,说明如何提供代码并(希望)得到答案。

library(dplyr)
library(tidyr)

# create example data 
df <- data.frame(pollinator = c(rep(4, 8), rep(5, 6), rep(6,2)),
                 flower_id = sample(c("H", "L"), 16, replace=TRUE))

# create a unique id by group
# transpose the dataframe
# join all the columns and rename it as sequence
# clean up the joined columns
df %>% 
  group_by(pollinator) %>% 
  mutate(n = 1:n(),
         id = paste0(pollinator, flower_id, n)) %>% 
  pivot_wider(-n, names_from = id, values_from = flower_id) %>% 
  unite(sequence, -pollinator, sep=" ") %>% 
  mutate(sequence = trimws(gsub("NA", "", sequence)))

相关问题