我有一个问题是从字符串向量创建数据集列变量。我看了很多教程和这个论坛问题没有回答。 这是一个虚拟代码
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。 谢谢
答案 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