从chr到numeric的数据表列转换是否会添加小数?

时间:2015-03-25 02:54:22

标签: r data.table digits scientific-notation significant-digits

我正在使用数据表,该数据表的结果列以字符值(chr)开头。因为我需要使用其中一些值进行数学计算,所以我会复制原始列,但将非数值的值更改为特定的数值。例如,我使用-999表示结果值为" *未报告"并为非数字字符设置类似的替换值。其他收集的值是诸如7.3或238之类的数字。结果值根据收集中使用的工具和报告的特征而变化。

以下是数据表dt的一小部分示例(不包括其他列)。

RESULT_VALUE    RESULT_TRANSLATED
43.2               43.2000
*Not reported      -999.00000
0.19               0.19000
0.058              0.05800

使用RESULT_TRANSLATED转换dt$RESULT_TRANSLATED <- as.numeric(as.character(dt$RESULT_VALUE))值。

scipendigits的选项值分别为0和7。

scipen设置为0以强制一列位置标识符(上面未显示的单独列)显示为非科学数字(例如23434 vs 2.3434e04)。 Digits设置为7,可以显示已记录的字段数据,而不会截断值或减少其有效数字。

我希望看到的是这些转化的结果:

RESULT_VALUE    RESULT_TRANSLATED
43.2               43.2
*Not reported      -999
0.19               0.19
0.058              0.058

此处,翻译后的数据反映了结果的重要数据与不存在的增加准确度。因此,0.058等值不表示0.05800或0.19的测量值并不意味着0.19000。

不幸的是,它出现了我不能拥有我的蛋糕(没有sci-notation的位置标识符)并且也吃它(在转换结果值中具有适当的准确度/ sig figs)。虽然我可以忽略位置识别科学记数法(可能将其更改为chrnumeric列),但我需要避免改变测量的准确性。

也许有人可以告诉我这是否可行,特别是当结果集包含来自不同精度的仪器报告的结果时。我已经搜索了各种资源并找到了一些相关的主题,但没有什么可以解决这个问题。

感谢您的帮助/指导。

0 个答案:

没有答案