通过数据框绘制直方图

时间:2014-02-02 18:16:51

标签: r

我是R的新用户,我使用 mixdist 软件包运行过去7天这种语言,用于有限混合分布的模态分析。我正在研究纳米粒子,因此R用于分析我用于实验的粒子分析仪记录的粒度分布。 我的问题如下: 首先,我从excel(原始数据)收集我的数据

Diameter    dN/dlog(dp) frequencies
4.87    1825.078136 0.001541926
5.62    2363.940947 0.001997187
6.49    2022.259831 0.001708516
7.5     1136.653264 0.000960307
8.66    363.4570006 0.000307068
10      255.6702845 0.000216004
11.55   241.6525906 0.000204161
13.34   410.3425535 0.00034668
15.4    886.929307  0.000749327
17.78   936.4632499 0.000791176
20.54   579.7940281 0.000489842
23.71   11.915522   0.00001
27.38   0           0
31.62   0           0
36.52   5172.088    0.004369665
42.17   19455.13684 0.01643677
48.7    42857.20502 0.036208126
56.23   68085.64903 0.057522504
64.94   87135.1959  0.07361661
74.99   96708.55662 0.081704712
86.6    97982.18946 0.082780747
100     95617.46266 0.080782896
115.48  93732.08861 0.079190028
133.35  93718.2981  0.079178377
153.99  92982.3002  0.078556565
177.83  88545.18227 0.074807844
205.35  78231.4116  0.066094203
237.14  63261.43349 0.053446741
273.84  46759.77702 0.039505233
316.23  32196.42834 0.027201315
365.17  21586.84472 0.018237755
421.7   14703.9162  0.012422678
486.97  10539.84662 0.008904643
562.34  7986.233881 0.00674721
649.38  6133.971913 0.005182317
749.89  4500.351801 0.003802145
865.96  2960.469207 0.002501167
1000    1649.858041 0.001393891
Inf     0               0

使用函数

pikraw<-read.table(file="clipboard", sep="\t", header=T) 

在R中导入数据后,我选择上表的第1和第3列:

diameter<- pikraw$Diameter
frequencies<-pikraw[3]

然后我使用函数

对数据进行分组
pikgrp <- data.frame(length =diameter, freq =frequencies)
class(pikgrp) <- c("mixdata", "data.frame")

完成所有这些我将绘制此数据的直方图

plot(pikgrp,log="x")

并且发生了一些奇怪的事情:水平轴和此处的值看起来很好,尽管图表的y轴显示为低频率值,而高值则带有小数点,从而降低了图表。

您对正在发生的事情有任何解释吗?可能答案可能非常简单,虽然在我疲惫不堪并失去一个整个周末后,我相信我拥有所有权利。

1 个答案:

答案 0 :(得分:0)

在我看来,你正在读错你的数据。试试这个:

pikraw <- read.table(file="clipboard", sep="", header=T) 

即,将sep参数更改为sep=""。一切都很好。

另外,请注意,将剪贴板用作file参数仅在剪贴板上有数据时才有效。我建议使用您的数据创建.txt(或.csv)文件。这样,您每次想要阅读时都不必将数据放在剪贴板上。