我有一个名为:mylist 的数据框列表。列表的标题是人名,数据框包含与这些人名相关的数据列(日期、身高、体重等)
names(mylist[1])
[1] "John"
names(mylist[2])
[1] "Susan"
mylist[[1]]
[1] name date hight weight ....
John 1950 1.81 78
John 1948 1.60 60
John 1935 1.50 55
mylist[[2]]
[1] name date hight weight ....
Susan 1985 1.40 40 .
Susan 1995 1.45 60
Susan 1990 1.25 40
我想为每个指标创建一个箱线图:一个用于身高的箱线图,一个用于体重的箱线图,等等。我只想在每个指标的箱线图中包含所有人员信息。例如,我想要一个包含 John、Susan 等信息的高度箱线图。
这是我对循环的尝试,但它不起作用。
for(s in 3:21) {
boxplot(x=for(i in 1:99){ mylist[[i]][s]}))
}
大家好,我应用了 nograpes 解决方案。虽然,他建议的代码:
ggplot(melted.df,aes(x=name,y=value)) +
geom_boxplot() + facet_grid(variable~.,scales='free')
将每个箱线图堆叠在一起,最后该图不可读,因为有 16 个箱线图。因此,一个好主意是创建 16 个不同的箱线图,每个指标一个。
我一直在寻找解决方案,一个是运行此代码:
tomelt<-data.frame(c(daily[1],daily[2],daily[3])) #create a data.frame with variable name, date and the variable to be ploted.
melted.df<-melt(tomelt,id.vars=c('name', 'date')) #convert to long form
ggplot(melted.df,aes(x=name,y=value)) + geom_boxplot() #plot
16 次,每次更改代码以调用数据帧的另一个度量(列)......但显然这根本没有效率。
您对如何创建一个 for 循环来执行此操作有任何想法吗?