Использование tidyr - один из вариантов.
tidyr::pivot_longer()
преобразует crop_land
и fishing_ground
в пары переменная-значение. tidyr::unite()
объединяет запись и переменную с новыми именами. tidyr::pivot_wider()
создает широкий фрейм данных, который вам нужен.
library(tidyr)
library(magrittr) # for %>%
tst <- data.frame(
record = c("BiocapPerCap", "Consumption"),
crop_land = c(1.5, 2.3),
fishing_ground = c(3.4, 0.5)
)
pivot_longer(tst, -record) %>%
unite(new_name, record, name, sep = '.') %>%
pivot_wider(names_from = new_name, values_from = value)