1

我正在使用一个数据表,它有一列以字符值 ( 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))

scipen和的选项值digits分别为 0 和 7。

设置为 0 以强制一列位置标识符(上面未显示的scipen单独列)显示为非科学数字(例如 23434 与 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列),但我需要避免更改测量的准确性。

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

感谢您的帮助/指导。

4

0 回答 0