我想基于字符向量中的元素,自动使用函数将列添加到数据帧(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.
将其转化为功能的任何帮助都将非常有用。谢谢!
答案 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