Это то, что вы ищете?
# packages
library(tidyr)
library(dplyr)
# create data
name<- c("Anna", "Berta", "Caesar", "Dora")
place <- c("AA", "BB", "CC", "DD")
location <-c("school", "work", "restaurant", "school")
time<-c(08.10, 08.30, 09.00, 10.15)
context<- c("a", "b", "a", "b")
dat<-as.data.frame(cbind(name, place, location, time, context))
dat_long<- dat %>%
pivot_longer(c(1:5), names_to = "Variable", values_to = "Value")
# backtransform long data frame into wide data frame
dat_wide<- dat_long %>%
group_by(Variable) %>% # group by everything other than the value column
mutate(row_id=1:n()) %>% ungroup() %>% # build group index
pivot_wider(names_from = "Variable", values_from = "Value") %>% # spread
select(-row_id)