我正在使用一个数据表,它有一列以字符值 ( 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)。虽然我可以忽略位置识别科学记数法(可能将其更改为chr
一numeric
列),但我需要避免更改测量的准确性。
也许有人可以告诉我这是否可能,特别是当结果集包括从不同精度的仪器报告的结果时。我搜索了各种资源并找到了一些相关的主题,但没有什么能完全解决这个问题。
感谢您的帮助/指导。