1

我有包含 variable_name 和 variable_values 的 R data.frame。我正在编写一个函数来提取每个变量名并分配相应的变量值并将其保存在内存中以备后用。但是,我不断收到错误消息,例如“as.name(df) <- df[i, 2] 中的错误:找不到函数“as.name<-”你能帮忙吗?

例子: df <- data.frame(name=c("Jane", "Bush","Bob", "Job"), age=c(12 , 34, 20, 50))

我想像这样为每个名字分配相应的年龄。

Jane <- 12 Bush <- 34 Bob <- 20 Job <- 50

这是我开始的代码:

splitobs <- function(df){
for(i in 1:nrow(df)){
noquote(as.name(df[i, 1]) <- df[i, 2]
print()
   }
}

splitobs(df)enter code here
4

1 回答 1

0

我们将 'age' 的名称设置为 'name',转换为 list并用于list2env在全局环境中创建多个对象(虽然不推荐)。

 list2env(as.list(setNames(df$age, df$name)), envir=.GlobalEnv)
 Jane
 #[1] 12

或者循环使用assignfor

for(i in 1:nrow(df)){
 assign(as.character(df$name[i]), df$age[i])
}
于 2015-10-19T18:28:09.660 回答