Создайте столбцы в кадре данных из вектора символов в R - PullRequest
1 голос
/ 16 октября 2019

Я хочу добавить столбцы во фрейм данных (df) на основе элементов в символьном векторе, автоматически используя функцию. Эти новые столбцы просто повторяют нули.

вот код для создания df:

var <- factor(c(a <- rep("a", 20), b <- rep("b", 20), c <- rep("c", 30), d <- rep("d", 30)))
var1 <- factor(c(e <- rep("a", 30), f <- rep("b", 30), g <- rep("c", 20), g1 <- rep("d", 20)))
x_df <- data.frame(var = var, var1 = var1)

вот вектор с именами переменных:

names_vec <- c("XA101", "XB101", "XC101")

У меня есть вручнуюдобавил эти 3 переменные с повторениями 0.

x_df$XA101 <- rep(0,nrow(x_df))
x_df$XB101 <- rep(0,nrow(x_df))
x_df$XC101 <- rep(0,nrow(x_df))

Желаемый результат:

head(x_df) # after adding the 3 variables manually. 

enter image description here

Любая помощь в превращении этогов функции будет здорово. Спасибо!

1 Ответ

3 голосов
/ 16 октября 2019

Вы также можете сделать:

x_df[, names_vec] <- 0

    var var1 XA101 XB101 XC101
1     a    a     0     0     0
2     a    a     0     0     0
3     a    a     0     0     0
4     a    a     0     0     0
5     a    a     0     0     0
6     a    a     0     0     0
7     a    a     0     0     0
8     a    a     0     0     0
9     a    a     0     0     0
10    a    a     0     0     0
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...