簡體   English   中英

使用“by”創建多個圖表標題

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM