2015-11-05 163 views
-3

我想調用for循環中的對象列表。在那個for循環中,我想在另一個列表「n」中使用我列表對象「i」的名稱作爲我的一個圖形上的標籤的字符。在for循環中將對象名稱i用作字符

所以,我想我是一個chracters

我已經試過

for(i in n){as.character(bquote(.(i))} 

但它返回的 「i」,我需要它來恢復我 所以,如果我的目標我是命名貓,我想要「貓」,而不是「我」。

而且,

for(i in n){quote(i)} 

但是,它在我的名單內的一切轉換成字符。

好吧,這裏有一個例子

cat<-c(1,2,3,4) 
dog<-c(5,6,7,8) 
walrus<-list(cat=cat,dog=dog) 

duck<-c(5,5,5,5,5) 
goose<-c(6,6,6) 
narwhal<-list(duck=duck, goose=goose) 

polarbear<-list(walrus=walrus, narwhal=narwhal) 

for(i in polarbear){print(as.character(i))} 

我想要的「海象」和「獨角鯨」作爲我的輸出,但只能有一個時間。

+0

簡單'圖(...,主要= 1)'不工作? – 2015-11-05 04:10:07

+0

不,它會返回列表中的每個變量作爲名稱。 – MadmanLee

+2

所以請分享一個可重現的例子,因爲它應該像它一樣工作。例如,什麼是'n'對象? – 2015-11-05 04:15:08

回答

0

您試圖做什麼並不明顯,但您的數據可能更容易作爲數據框使用。使用listless包(尚未在CRAN上)轉換它。

獲取listless

library(devtools) 
install_bitbucket("graumannlabtools/listless") 

轉換爲數據幀:

library(listless) 
(polarbear_data <- list_to_data.frame(polarbear)) 
##  names1 names2 values 
## 1 walrus cat  1 
## 2 walrus cat  2 
## 3 walrus cat  3 
## 4 walrus cat  4 
## 5 walrus dog  5 
## 6 walrus dog  6 
## 7 walrus dog  7 
## 8 walrus dog  8 
## 9 narwhal duck  5 
## 10 narwhal duck  5 
## 11 narwhal duck  5 
## 12 narwhal duck  5 
## 13 narwhal duck  5 
## 14 narwhal goose  6 
## 15 narwhal goose  6 
## 16 narwhal goose  6 

polarbear_data是一個形式,將很容易與其他工具的工作,像dplyrggplot2

library(ggplot2) 
ggplot(polarbear_data, aes(interaction(names1, names2), values)) + 
    geom_boxplot() 

polar bear boxplot