从数据框创建色散图

时间:2014-01-09 05:47:34

标签: r

我有数据框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_ageboxplot_mydata_x_height_seca1density_mydata_x_height_chad1。还要确保为图表标记适当的标题。我不需要使用任何'额外'R包。 我会非常感谢任何帮助,因为我尝试了许多方法并取得了有限的成功。

1 个答案:

答案 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_xsex之外的所有列执行函数(只要它包含因子)。

每列的功能为直方图,箱线图和密度图生成专有名称,并将它们绘制到png()设备,因此它们存储在当前工作目录中。

函数生成15个图(5列×3种类型)。例如,hist_mydata_x_height_chad1.jpg

enter image description here