2015-11-05 158 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