从数据框中提取变量值的函数
Function to extract variable values from data frame
我有 R data.frame 包含 variable_name 和 variable_values。我正在编写一个函数来提取每个 variable_name 并分配相应的
variable_values 并保存在内存中以备后用。但是,我不断收到这样的错误消息 "Error in as.name(df) <- df[i, 2] : could not find function "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
我们将 'age' 的名称设置为 'name',转换为 list
并使用 list2env
在全局环境中创建多个对象(尽管不推荐)。
list2env(as.list(setNames(df$age, df$name)), envir=.GlobalEnv)
Jane
#[1] 12
或在 for
循环中使用 assign
。
for(i in 1:nrow(df)){
assign(as.character(df$name[i]), df$age[i])
}
我有 R data.frame 包含 variable_name 和 variable_values。我正在编写一个函数来提取每个 variable_name 并分配相应的 variable_values 并保存在内存中以备后用。但是,我不断收到这样的错误消息 "Error in as.name(df) <- df[i, 2] : could not find function "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
我们将 'age' 的名称设置为 'name',转换为 list
并使用 list2env
在全局环境中创建多个对象(尽管不推荐)。
list2env(as.list(setNames(df$age, df$name)), envir=.GlobalEnv)
Jane
#[1] 12
或在 for
循环中使用 assign
。
for(i in 1:nrow(df)){
assign(as.character(df$name[i]), df$age[i])
}