5

1 つまたは 2 つのグループ変数を使用して多くのサブグラフを作成するために、「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)")
}
4

2 に答える 2

2

seqdplot関数は、group引数を使用して自動的にそれを実行できます。

seqdplot(seqobject, group=data.frame$group)

ここで、seqobjectは、seqdef関数で作成されたオブジェクトです。

于 2012-12-07T12:30:56.843 に答える
2

data.frame サブセットをfunction(X)次のように渡すことで、関数の引数を調整できます。

by(data.frame, data.frame$group, function(X) seqdplot(X, title=X$group[1]))
于 2012-12-07T02:14:37.373 に答える