【发布时间】:2020-01-04 17:54:41
【问题描述】:
我有一个排序的数字序列,例如
x <- c(1, 2, 2.5, 3, 3.0001, 3.0002, 4)
我想将它们格式化为字符串,使输出尽可能短,但避免重复。例如,x 可接受的输出是:
sprintf("%.5g", x)
#> [1] "1" "2" "2.5" "3" "3.0001" "3.0002" "4"
但这会失败:
y <- c(1, 2, 2.5, 3, 3.00001, 3.00002, 4)
sprintf("%.5g", y)
#> [1] "1" "2" "2.5" "3" "3" "3" "4"
我会对可能的替代解决方案感兴趣(下面有一个简单的解决方案)。
更新:使用sprintf("%s", x) 的问题如下,有时,我的输入将是一组非常长的数字,我想截断它们 - 这么长因为它们不会变得不独特。
例如如果我有
x <- c(1.00001, 2.00001)
我的理想输出是"1", "2"。但是如果我有
x <- c(1.00001, 1.00002)
那我需要"1.00001", "1.00002"。
【问题讨论】:
标签: r string type-conversion