Вот быстрое и грязное решение с использованием dplyr
.
library(dplyr)
# your data
measurement1Height <- factor(c(176, 177, 180, 181, 177))
measurement2Height <- factor(c(176, 177, 180, 181, 177))
measurement3Height <- factor(c(176, 177, 180, 181, 176))
measurement1Weight <- factor(c(73, 79, 85, 85, 80))
measurement2Weight <- factor(c(75, 80, 84, 85, 80))
measurement3Weight <- factor(c(74, 79, 85, 84, 76))
# operations
data_names <- as.list(sort(paste0(paste0("measurement", 1:3), rep(c("Height", "Weight"), each=3))))
data <- lapply(data_names, get)
names(data) <- data_names
data <- data %>%
bind_rows() %>%
mutate(Person = paste("Person", 1:nrow(bind_rows(data)))) %>%
select(Person, everything())
# here's your new data
data
В конце концов, я бы рекомендовал использовать целые и числовые значения вместо факторов (в зависимости от цели, которую вы ставите).