条形图的R循环如何传递数据?
我需要生成多个简单的条形图并保存为jpeg格式,其中四个条形图表示四个数据点。我已经成功地使代码循环,以所需的格式生成正确数量的jpeg文件条形图。但我无法计算出插入每个条形图的相关数据所需的代码。我只能使用每个文件/绘图中表示的相同数据生成多个绘图我应该在代码中更改什么以将相关数据插入每个绘图? 下面是我的代码 “names”是包含一个名为“personid”的变量的数据帧personid'包含'mydata'中的所有变量名 “mydata”是这样设置的数据帧:条形图的R循环如何传递数据?,r,loops,plot,R,Loops,Plot,我需要生成多个简单的条形图并保存为jpeg格式,其中四个条形图表示四个数据点。我已经成功地使代码循环,以所需的格式生成正确数量的jpeg文件条形图。但我无法计算出插入每个条形图的相关数据所需的代码。我只能使用每个文件/绘图中表示的相同数据生成多个绘图我应该在代码中更改什么以将相关数据插入每个绘图? 下面是我的代码 “names”是包含一个名为“personid”的变量的数据帧personid'包含'mydata'中的所有变量名 “mydata”是这样设置的数据帧: J5A J5B J5C .
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),我可以在单独的jpeg文件中生成43个绘图,这些绘图都包含J5A的数据。不好的。我的理解是我应该使用mydata$kid.I,但显然不是,因为循环中止,我得到了错误
"Error in barplot.default(kid.i, xlab = "Language Skills", ylim = c(1, :
'height' must be a vector or a matrix"
代码:
allkids你们很接近!罪魁祸首在这里:条形图(mydata$J5A….
相反,您希望使用
barplot(mydata[, i] . . .. .
for (i in 2:ncol(myData)) {
. . .
}
给出它的原因是barplot
的第一个参数当然是数据。因此,我们查看该参数,看看它是否随for循环的每次迭代而变化。mydata$J5A
是常量,我们需要参考i
,例如mydata[,i]
根据评论更新
如果第一列(或前几列)不是要打印的数据(例如标签、名称、其他功能),则应在该列之后开始使用迭代变量i
barplot(mydata[, i] . . .. .
for (i in 2:ncol(myData)) {
. . .
}
谢谢-我试过了,但是当我用mydata$J5A替换mydata[,我]时,我得到了与替换mydata$kid.I时相同的错误消息,即:barplot.default中的错误(mydata[,I],xlab=“Language Skills”,ylim=c(1,:“height”必须是一个向量或一个矩阵,可以运行dput(head(mydata))
并将输出粘贴到问题中above@miggy_ad,尝试在2
处而不是在1处启动i
。(请参阅以上答案的更新)其他读卡器的NB:dput(头(myData))输出在问题解决后被删除,以保持线程干净