【发布时间】:2019-11-19 05:39:11
【问题描述】:
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 列称为数据,3 列称为 x。我不想调用列 x,而是希望它们的名称为 x1、x2、x3(存储在 x_names 中)。我将 x_name 放在代码中(注释掉),但它不起作用。你能帮我解决一下吗?
【问题讨论】:
-
这里发生了几件事。首先,我会为每一列使用名称以减少混乱。那么您可以使用
rlang::sym来评估表达式。然而,最快的解决方法是在循环之后添加colnames(data) = c("data","x1","x2","x3") -
这是一个过于简单的例子。我无法在循环之后执行此操作,因为我正在循环中进行一些建模工作,并且它不适用于具有相同列名的列。