Функция R преобразует вектор в столбцы - PullRequest
1 голос
/ 11 января 2020

Есть ли простой способ добавить столбцы в data.frame с известными значениями вектора?

У меня есть фрейм данных "Сейчас"

Now<-data.frame(1:4)
Vect<-c(A,B,C)
Vect_name<-c("x1","x2","x3")

Мне нужен такой результат для фрейма данных :

Result<-data.frame(c(1:4),"A","B","C")
colnames(Result)<-Vect_name

и я хочу, чтобы код также применялся, когда длина "Vect" и "Vect_name" является переменной. Я имею в виду, что Vect может быть c (A, B, C, D ...), а Vect_name может быть c ("x1", "x2", "x3", "x4" ...).

Спасибо.

1 Ответ

1 голос
/ 11 января 2020

Мы можем использовать base R, присваивая list из 'Vect' (преобразовать в list) для имен столбцов в 'Vect_name'

Now[Vect_name]  <- as.list(Vect)

Или, если мы этого не сделаем хотите изменить исходный объект, используйте cbind

Now1 <- cbind(Now, t(setNames(Vect, Vect_name)))

или с помощью tidyverse создайте именованный столбец list и затем используйте unnest_wider

library(dplyr)
library(tidyr)
Now %>% 
    mutate(col = list(as.list(set_names(Vect, Vect_name)))) %>% 
    unnest_wider(col)

данные

Vect <- c("A", "B", "C")
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...