r - 在 sprintf 中使用百分号 (%)

标签 r printf

考虑这个例子

n <- 100    
for (j in 1:n) {
    print(sprintf("Processing feature %i from %i; %1.0f",j,n,j/n*100))
}

但我希望在每行末尾有一个带有“%”的输出文本,就像

Processing feature 15 from 100; 15%

当然

n <- 100    
for (j in 1:n) {
    print(sprintf("Processing feature %i from %i; %1.0f%",j,n,j/n*100))
}

返回错误信息,因为最后一个 "%"

如何使用 sprintf 命令获取输出字符串末尾的百分号“%”?

提前致谢

最佳答案

1) 使用双百分比。 (有关所有百分比代码,请参阅 ?sprintf。)

j <- 2; n <- 3
sprintf("Processing feature %i of %i (%.0f%%)", j, n, 100 * j / n)
## [1] "Processing feature 2 of 3 (67%)"

1a) 或舍入最后一个以便我们也可以使用 %i:

sprintf("Processing feature %i of %i (%i%%)", j, n, round(100 * j / n))
## [1] "Processing feature 2 of 3 (67%)"

2) 如果我们在 print(或任何函数)前面加上来自 gsubfn 的 fn$,那么我们可以使用 $ 来引用一个变量(前提是它只包含单词字符并且它的末尾由非单词字符分隔)和反引号包含 R 代码。

library(gsubfn)

fn$print("Processing feature $j of $n (`round(100*j/n)`%)")
[1] "Processing feature 2 of 3 (67)%"

关于r - 在 sprintf 中使用百分号 (%),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/66187032/

相关文章:

r - 如何对数据框进行排序

c - 二叉树和 printf 的奇怪错误

c - 如何将一个字节打印为两位十六进制字符?

r - prop.table 错误 : x is not an array

r - 按组计算的累积最小值

r - 使用 igraph 查找距离矩阵

r 嵌套指示器 1st of 1st 和 2nd of 1st 和 2nd of 2nd

c - 带有说明符 "%g"的 printf 的精度

linux - 如何从程序集 nasm x86 linux 8086 调用 printf

python - 如何打印变量之间的空格?