gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-12-05 03:44:53 25 4
gpt4 key购买 nike

考虑这个例子

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/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com