根据R中的特征向量在数据框中创建列

时间:2019-10-16 12:18:02

标签: r

我想基于字符向量中的元素,自动使用函数将列添加到数据帧(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 个答案:

答案 0 :(得分:3)

您也可以这样做:

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