Мы можем преобразовать в «длинный» формат с помощью pivot_longer
, а затем изменить его на «широкий» с помощью pivot_wider
library(dplyr)
library(tidyr)
df1 %>%
pivot_longer(cols = -c(X, Form)) %>%
select(-X) %>%
group_by(Form) %>%
mutate(rn = row_number()) %>%
pivot_wider(names_from = Form, values_from = value)
# A tibble: 3 x 5
# rn name var1 var2 var3
# <int> <chr> <dbl> <dbl> <dbl>
#1 1 Jan_92 2.02 0.23 0.08
#2 2 Feb_92 2.97 0.28 0.28
#3 3 Mar_92 0.12 0.33 0.12
data
df1 <- structure(list(X = 1:3, Form = c("var1", "var2", "var3"), Jan_92 = c(2.02,
0.23, 0.08), Feb_92 = c(2.97, 0.28, 0.28), Mar_92 = c(0.12, 0.33,
0.12)), class = "data.frame", row.names = c(NA, -3L))