我有数据框mydata_x
:
sex age height_seca1 height_chad1 height_DL weight_alog1
1 F 19 1800 1797 180 70
2 F 19 1682 1670 167 69
3 F 21 1765 1765 178 80
4 F 21 1829 1833 181 74
5 F 21 1706 1705 170 103
6 F 18 1607 1606 160 76
7 F 19 1578 1576 156 50
8 F 19 1577 1575 156 61
9 F 21 1666 1665 166 52
10 F 17 1710 1716 172 65
11 F 28 1616 1619 161 66
12 F 22 1648 1644 165 58
13 F 19 1569 1570 155 55
14 F 19 1779 1777 177 55
15 M 18 1773 1772 179 70
16 M 18 1816 1809 181 81
17 M 19 1766 1765 178 77
18 M 19 1745 1741 174 76
19 M 18 1716 1714 170 71
20 M 21 1785 1783 179 64
21 M 19 1850 1854 185 71
22 M 31 1875 1880 188 95
23 M 26 1877 1877 186 106
24 M 19 1836 1837 185 100
25 M 18 1825 1823 182 85
26 M 19 1755 1754 174 79
27 M 26 1658 1658 165 69
28 M 20 1816 1818 183 84
29 M 18 1755 1755 175 67
我的目标是为包含连续数据的mydata_x
每列创建单独的直方图,箱线图和密度分布(即age
列除外)并将这些图保存为.jpeg
个文件使用文件命名结构的工作目录:hist_mydata_x_age
,boxplot_mydata_x_height_seca1
,density_mydata_x_height_chad1
。还要确保为图表标记适当的标题。我不需要使用任何'额外'R包。
我会非常感谢任何帮助,因为我尝试了许多方法并取得了有限的成功。
答案 0 :(得分:1)
你的意思是这样吗?
sapply(names(mydata_x)[-1], function(name){
# Histogram
h.name <- paste0("hist_mydata_x_", name)
png(paste0(h.name,".jpg"))
hist(mydata_x[,name], main=h.name, xlab=name)
dev.off()
# Boxplot
b.name <- paste0("boxplot_mydata_x_", name)
png(paste0(b.name, ".jpg"))
boxplot(mydata_x[,name], main=b.name, xlab=name)
dev.off()
# Density
d.name <- paste0("density_mydata_x_", name)
png(paste0(d.name, ".jpg"))
plot(density(mydata_x[,name]), main=d.name)
dev.off()
})
此处mydata_x
是包含原始问题数据的data.frame。 sapply(names(mydata_x)[-1], function(name){...})
为mydata_x
除sex
之外的所有列执行函数(只要它包含因子)。
每列的功能为直方图,箱线图和密度图生成专有名称,并将它们绘制到png()
设备,因此它们存储在当前工作目录中。
函数生成15个图(5列×3种类型)。例如,hist_mydata_x_height_chad1.jpg
: