x_names <-c("x1","x2","x3")
data <- c(1,2,3,4)
fake <- c(2,3,4,5)
for (i in x_names)
{
x = fake
data = as.data.frame(cbind(data,x))
#data <- data %>% rename(x_names = x)
}
我做了一个玩具示例。此代码将生成一个数据框,其中 1 列称为 data,3 列称为 x。我不想将列称为 x,而是将它们命名为 x1、x2、x3(存储在 x_names 中)。我把x_name放在代码中(注释掉),但是不起作用。你能帮我解决一下吗?
最佳答案
我们还可以使用 tidyverse
中的 map_dfc
:
library(tidyverse)
cbind(data, map_dfc(x_names, ~ tibble(!!.x := fake)))
输出:
data x1 x2 x3
1 1 2 2 2
2 2 3 3 3
3 3 4 4 4
4 4 5 5 5
关于r - for循环中的变量名,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56956381/