2015-10-19 68 views
1

我有包含variable_name和variable_values的R data.frame。我正在寫一個函數來提取每個variable_name並分配相應的變量值並將其保存在內存中供以後使用。不過,我不斷收到錯誤消息,因爲這「在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 

回答

0

我們使用'name'設置'age'的名字,轉換爲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]) 
}