来自字符串向量的数据集列变量

时间:2016-03-04 00:05:11

标签: r string variables

我有一个问题是从字符串向量创建数据集列变量。我看了很多教程和这个论坛问题没有回答。 这是一个虚拟代码

library(pROC)
data(aSAH)
vector = c('wfns','age')
loc <- as.name(vector[1])
aSAH$loc

我尝试了as.name,as.symbol,eval(解析器),我输出了NULL。 我的目标是使用vector [1]作为变量名:aSAH $ wfns。 谢谢

2 个答案:

答案 0 :(得分:0)

我认为您希望loc列为“wfns”? 如果是这种情况,您可以使用dplyr包和mutate函数

library(pROC)
data(aSAH)
vector = c('wfns','age')
loc <- as.name(vector[1])

#Use dplyr
library(dplyr)
aSAH <- aSAH%>%mutate(loc = vector[[1]])

对于传统方法,您可以遍历并添加列(假设您从表中已有7列开始),以下工作。

for ( i in 1:length(vector) ) {

                           aSAH[,i+7] <- vector[[i]] 
                           colnames(aSAH)[[i]] <- vector[[i]]

                              }

如果您的意思是其他问题,那么问题就不那么明确了。

答案 1 :(得分:0)

我已经通过这种方式解决了这个问题:

library(pROC)
data(aSAH)
vector_names = c('wfns','age')
Variables_vector_index = c()
for (i in 1:length(vector_names)){
  Variables_vector_index = c(Variables_vector_index,grep(vector_names[i], colnames(aSAH)))
}

aSAH[Variables_vector_index[1]]

这相当于aSAH $ wfns