在for循环中使用对象名称i作为字符

时间:2015-11-05 04:05:13

标签: r

我想调用for循环中的对象列表。在for循环中,我想使用我的列表对象的名称" i"在另一个列表中" n"作为我的一张图上标签的字符。

所以,我希望我成为一个字符

我试过了

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

但它返回"我",我需要它来返回i 所以,如果我的对象我被命名为cat,我想要" cat",而不是"我"。

 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))}

我想&#34;海象&#34;和&#34;独角鲸&#34;作为我的输出,但一次只有一个。

1 个答案:

答案 0 :(得分: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