在通过 SQL 查询导入的 R 对象中显示前导零和尾随零
Display a leading zero AND a tailing zero in an R object imported through a SQL query
我需要生成任何类型的打印语句(为了与其余工作保持一致,我更喜欢 cat 或 paste)。
我遇到的问题是当 XX.XX 形式的对象具有前导零和尾随零时,我找不到打印对象的方法,例如 07.20.
通常这不会成为问题,但对象通过 RODBC SQL 查询来自数据库。
我通常可以通过以下方式实现前导零:
X <- paste(SQL QUERY HERE)
report <- formatC(as.vector(t(RODBC::sqlQuery(channel, X))),
width = 5, flag = "0")
然而,对于具有前导零和尾随零的字符,这将打印以下内容:
paste(report)
007.2
以下将产生尾零:
report <- formatC(as.vector(t(RODBC::sqlQuery(channel, X))),
format = 'f', digits = 2)
paste(report)
7.20
这两种方法的任何组合似乎只偏向于一种方法并产生上述结果之一。
非常感谢。
几个例子只是为了修正想法(仍然不能理解你需要什么):
## val <- as.vector(t(RODBC::sqlQuery(channel, X)))
val <- 7.2
sprintf("%05.2f", val)
val <- "007.2"
sprintf("%05.2f", as.numeric(val))
我需要生成任何类型的打印语句(为了与其余工作保持一致,我更喜欢 cat 或 paste)。
我遇到的问题是当 XX.XX 形式的对象具有前导零和尾随零时,我找不到打印对象的方法,例如 07.20.
通常这不会成为问题,但对象通过 RODBC SQL 查询来自数据库。
我通常可以通过以下方式实现前导零:
X <- paste(SQL QUERY HERE)
report <- formatC(as.vector(t(RODBC::sqlQuery(channel, X))),
width = 5, flag = "0")
然而,对于具有前导零和尾随零的字符,这将打印以下内容:
paste(report)
007.2
以下将产生尾零:
report <- formatC(as.vector(t(RODBC::sqlQuery(channel, X))),
format = 'f', digits = 2)
paste(report)
7.20
这两种方法的任何组合似乎只偏向于一种方法并产生上述结果之一。
非常感谢。
几个例子只是为了修正想法(仍然不能理解你需要什么):
## val <- as.vector(t(RODBC::sqlQuery(channel, X)))
val <- 7.2
sprintf("%05.2f", val)
val <- "007.2"
sprintf("%05.2f", as.numeric(val))