4 つのデータ ポイントを表す 4 つの棒グラフを使用して、複数の単純な棒グラフを生成して jpeg に保存する必要があります。コードをループさせて、目的の形式で正しい数の jpeg ファイル バープロットを生成することに成功しました。しかし、各バープロットに関連するデータを挿入するために必要なコードはわかりません。各ファイル/プロットで表される同じデータを持つ複数のプロットしか作成できません。関連データを各プロットに挿入するには、コードの何を変更すればよいですか?
以下は私が持っているコードです。
「names」は、「personid」という名前の変数を 1 つ含むデータフレームです。「personid」には、「mydata」内のすべての変数名が含まれています。
「mydata」は、次のように設定されたデータフレームです。
J5A J5B J5C ...
w 2.1 1.3 3.2 ...
x 1.9 2.2 1.8 ...
y 1.5 2.4 1.8 ...
z 1.9 2.2 1.7 ...
コードで変数名 (mydata$J5A など) を使用すると、J5A のデータをすべて含む個別の jpeg ファイルで 43 のプロットを作成できます。良くない。私の理解では、ループが中止されてエラーが発生するため、mydata$kid.i を使用する必要がありますが、明らかに使用しないでください。
"Error in barplot.default(kid.i, xlab = "Language Skills", ylim = c(1, :
'height' must be a vector or a matrix"
コード:
allkids <- unique(names$personid)
for (i in 1 : 43) {
setwd("D:/R/BARPLOTS/")
kid.i <- allkids[i]
filename <- paste (kid.i, ".jpg", sep="")
jpeg(file = filename)
barplot(mydata$J5A, xlab = "Language Skills", ylim = c(1,3), xpd = FALSE,
names.arg=working2$varname, axes=FALSE, cex.names=.8, col=c("darkblue","red",
"darkgreen", "yellow"))
dev.off()
}
更新:興味のある方のために、バグが削除された最終的な作業コードを次に示します。
allkids <- unique(names$personid)
for (i in 2 : 44) {
setwd("D:/R/BARPLOTS/")
kid.i <- allkids[i]
filename <- paste (kid.i, ".jpg", sep="")
jpeg(file = filename)
barplot(mydata[, i], xlab = "Language Skills", ylim = c(1,3), xpd = FALSE,
names.arg=working2$varname, axes=FALSE, cex.names=.8, col=c("darkblue","red",
"darkgreen", "yellow"))
dev.off()
}