R中sqldf拼接字符串的数字格式化及Base R复现方法
sqldf字符串拼接时的数字格式化规则及Base R复现方法
一、sqldf的格式化逻辑
sqldf默认依托SQLite引擎执行SQL语句,SQLite中的round()函数在对数字取0位小数时,返回的是保留一位小数的数值类型(而非纯整数)。当这个数值与字符串拼接时,SQLite会自动将其格式化为带一位小数的字符串形式,因此会得到2153.0这类结果。
二、Base R复现方法
Base R的round()函数处理该数值后返回整数类型(2153),默认打印不会显示小数位。要复现sqldf的输出效果,需要主动指定格式化规则,以下两种方法可行:
方法1:使用sprintf函数
直接通过格式化字符串指定保留一位小数:
sprintf(" - tx: %.1f", round(2152.918349)) # 输出结果:[1] " - tx: 2153.0"
方法2:使用format+paste组合
用format设置强制显示的小数位数,再和目标字符串拼接:
paste(" - tx:", format(round(2152.918349), nsmall = 1)) # 输出结果:[1] " - tx: 2153.0"
内容的提问来源于stack exchange,提问作者hannes101
相关产品推荐
相关产品推荐

