我试图动态构建一个html文件,其中一个变量将取决于目录中与模式匹配的文件数。这是代码:
html <- '
<!DOCTYPE HTML>
<html>
<head>
<meta charset = "utf-8">
<title>Sankey Plot Test</title>
<script type = "text/javascript" src = "http://code.jquery.com/jquery-latest.min.js"></script>
</head>
<body>
<iframe src = "plot0.html" width = 100% height = 1000px id = "sankey" style = "border: none"></iframe>
<script>
$(function() {
var selector = $("#sankey");
var delay_sec = 1;
var num = 1,
len = %d;
setInterval(function() {
num = (num === len) ? 0 : num;
selector.attr("src", "plot" + num + ".html");
num++;
}, delay_sec * 1000);
});
</script>
</body>
</html>'
n <- list.files(path = "path/to/files", pattern = "plot\\d+.html") %>% length()
html <- sprintf(html, n)
尽管使用了%d
,但它返回的错误表明我的整数对象的格式不正确。我在使用%d
与sprintf
时使用asm(
"number: \n"
".long 0xFFFFFFFF \n"
[snip rest of array]
);
时提到了其他一些提及错误格式错误的问题,但没有一个像我看到的那样。
任何有关正在发生的事情的见解都将受到赞赏。谢谢!
答案 0 :(得分:4)
你的问题在这一行:
<iframe src = "plot0.html" width = 100% height
注意%。您可以使用另一个%来逃避%:
<iframe src = "plot0.html" width = 100%% height
当sprintf在字符串中运行时,它将正确输出100%。