[英]Creating multiple line graphs (ggplot) using Apply function and giving them titles based on their column names
[英]Using “by” for creating multiple graph titles
我试图使用“for”的“by”,以便使用一个或两个组变量创建许多子图。 两组变量都是一个因子变量(性别是虚拟的,父亲的社会地位有多个级别)。 如何在图例或图表标题中添加组的级别(也称为名称)?
这是我正在使用的代码。
library(TraMineR)
library(Hmisc)
data(biofam)
biofam.lab <- c("Parent", "Left", "Married", "Left+Marr",
"Child", "Left+Child", "Left+Marr+Child", "Divorced")
biofam.seq <- seqdef(biofam, 10:25, labels=biofam.lab)
class(biofam$sex)
levels(biofam$sex)
describe(biofam$sex)
class(biofam$cspfaj)
levels(biofam$cspfaj)
describe(biofam$cspfaj)
### Simple plots
seqdplot(biofam.seq)
seqdplot(biofam.seq, group=biofam$sex, title="Marital status by gender")
### Plot with automatic title using "by"
by(biofam.seq, biofam$sex, function(X) seqdplot(X, title="X$sex[1]"))
by(biofam.seq, biofam$sex, function(X) seqdplot(X, title=X$sex[1]))
### Plot with automatic title and multiple-grouping using "for"
for(n in c(1, 2, 3)) {
seqdplot(subset(biofam.seq, subset=biofam$cspfaj==(n)), title="(n)")
}
for(n in c(1, 2, 3)) {
seqdplot(subset(biofam.seq, subset=biofam$cspfaj==(n)), group=biofam$sex, title="(n)")
}
您可以通过将data.frame子集作为function(X)
传递来调整函数的参数:
by(data.frame, data.frame$group, function(X) seqdplot(X, title=X$group[1]))
seqdplot函数可以使用group参数自动执行:
seqdplot(seqobject, group=data.frame$group)
其中seqobject是使用seqdef函数创建的对象。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.