R使输出中的数字膨胀

时间:2016-04-08 16:27:35

标签: r

我遇到输出号码R给我的问题比输入值高几倍。

我的脚本正在读取制表符分隔的文本文件,其中包含以下数据(摘录):

4800.000000000004   63.79541685299562
4808.000000000004   65.44888307144669
4816.000000000004   65.66174624010496
4824.000000000004   65.85413227845713
4832.000000000004   66.3271958214957
4840.000000000004   66.67304406065
4848.000000000004   66.90294325983125
4856.000000000004   67.16391462118467
4864.000000000004   67.3649619902818
4872.000000000004   67.47950644400306
4880.000000000004   67.53568545748826
4888.000000000004   67.5820448431992
4896.000000000004   67.70983887523283
4904.000000000004   67.84124194437604
4912.000000000004   67.78234409282649
4920.000000000004   67.17896344097808
4928.000000000004   65.16964351857043

这被标记为intenistyFile - 来自音频分析程序的强度数据。第一列是以毫秒为单位的时间,第二列是以分贝为单位的强度。

从这里,我获取两个时间值之间的所有强度数据(取自循环中的另一个文件):

    beginTime <- labelFile[i,1] 
    endTime <- labelFile[i,2]
...
#Read intensity file. Grab all pitch measurements >= begin time and <= end time
C <- subset(intensityFile, V1>=beginTime & V1<=endTime)

#Do the following calculations on the F0, stored in the data table
maxIntense <- max(as.numeric(C$V2))
minIntense <- min(as.numeric(C$V2))
rangeIntense <- maxIntense - minIntense 
meanIntense <- mean(as.numeric(C$V2))
stdevIntense <- sd(as.numeric(C$V2))

(我已经省略了定义&#34; labelFile&#34;,这是我得到时间值的地方。)

问题是,在我执行此操作后,我得到这样的值:

maxIntense  minIntense  rangeIntense    meanIntense
23242       19110       4132           21466.66667
24699       19851       4848           23384
22109       16905       5204           20892.28571
25442       13973       11469          20764.46154
26410       16347       10063          23433.18182
25452       13750       11702          20401.63636
27241       9788        17453          23040.41667
23795       19965       3830           22413.5
23528       19584       3944           22074.14286
27530       14302       13228          21571.91667

这显然是大规模膨胀。这些是人类说话,而不是行星爆炸的炸弹。我试过使用as.double()而不是as.numeric()(我必须强制一个类型,因为某种原因强度会被读取为一个因素)。什么可能导致这种奇怪的通货膨胀?

注意 - 我对一个表示音高值的文件做了基本相同的操作,但没有奇怪的通货膨胀(它也是制表符分隔的文本)。

编辑:修正由于下面的joran评论的第一个评论。 C $ V2读取的原因是每个文件都有许多值&#34; - undefined - &#34;。我在R中运行之前手动删除了这些并且它运行了。显然有一个重复,但我不会需要它。

0 个答案:

没有答案