Создание R-кадра данных из вектора по горизонтали
Основная идея заключается в использовании метода транспонирования R: t(...)
для транспонирования вектора перед передачей его конструктору data.frame
.
my_name_vector = c("penguin1", "penguin2", "penguin3", "penguin4");
my_data_vector = c("Skipper", "Kowalski", "Rico", "Private");
supplemental_vector = c("Mumble", "Dorthy", "Norma", "Memphis");
#create a data frame out of a transposed vector
penguins = as.data.frame(t(my_data_vector));
#change the names of the dataframe to be the titles
colnames(penguins) <- my_name_vector;
supplemental_data_frame <- data.frame(t(supplemental_vector));
colnames(supplemental_data_frame) <- my_name_vector;
supplemental_data_frame;
#rbind means row bind, pass in two data.frame
penguins <- rbind(penguins, supplemental_data_frame);
penguins;
Печать:
penguin1 penguin2 penguin3 penguin4
1 Mumble Dorthy Norma Memphis
penguin1 penguin2 penguin3 penguin4
1 Skipper Kowalski Rico Private
2 Mumble Dorthy Norma Memphis
Метод rbind очень неэффективен, поэтому, если вы делаете это более чем на несколько сотен строк, ожидайте долгое время. Если вам нужно молниеносно, вам нужно заранее выделить место или использовать метод списка, как показано здесь: https://stackoverflow.com/a/20689857/445131