在R中为温度数据前两位数字后添加小数点的方法咨询
在R中为温度数据添加小数点的方法
已知需要将整数形式的温度值(如227725)转换为前两位后加小数点的数值(即22.7725),以下是几种简单可行的实现方式:
方法一:数学运算(高效直接)
针对你提供的6位温度值,直接将数值除以10000即可得到目标格式——因为前两位后加小数点,剩余4位自动转为小数部分:
# 对temperature列执行除法运算,生成修正后的列 df$temperature_corrected <- df$temperature / 10000 # 查看修正后的数据框 df
执行后输出结果:
date temperature temperature_corrected 1 2022-06-14 12:02:01 UTC 227725 22.7725 2 2022-06-14 12:32:01 UTC 208957 20.8957 3 2022-06-14 13:02:01 UTC 210834 21.0834 4 2022-06-14 13:32:01 UTC 214588 21.4588 5 2022-06-14 14:02:01 UTC 218342 21.8342
方法二:字符串处理(适配位数不固定的场景)
如果温度值的位数不统一(比如存在5位、7位的数值),可以通过字符串操作精准插入小数点,无需依赖数值位数:
library(stringr) # 转字符串→在第2个字符后插入小数点→转回数值型 df$temperature_corrected <- as.numeric(str_replace(as.character(df$temperature), "(^.{2})", "\\1."))
该方法会自动识别每个数值的前两位,比如12345会转为12.345,1234567会转为12.34567,适用性更广。
方法三:基础R原生操作(无需额外包)
若不想加载第三方包,用基础R的sub函数结合正则表达式也能实现同样效果:
# 基础R正则替换:匹配开头两位字符,后加小数点,再转回数值 df$temperature_corrected <- as.numeric(sub("^(..)", "\\1.", as.character(df$temperature)))
内容的提问来源于stack exchange,提问作者Marta Román
相关产品推荐
相关产品推荐

