我正在寻找如何在r中执行printf,即我想键入:
printf("hello %d\n", 56 )
Run Code Online (Sandbox Code Playgroud)
并获得与输入相同的输出:
print(sprintf("hello %d\n", 56 )
Run Code Online (Sandbox Code Playgroud)
我已阅读以下链接:
...所以我知道我可以使用cat("hello", 56),这可能就是我要做的,但只是想知道是否有一些快捷的写作方式print(sprintf(...))?
对不起,如果这个问题是重复的(我不知道).搜索'printf r'非常困难,因为它返回php,c,...的结果
我有一个网址,我需要发送使用日期变量的请求.https地址采用日期变量.我想使用像Python中的格式化运算符%那样将日期分配给地址字符串.R有一个类似的运算符还是我需要依赖paste()?
# Example variables
year = "2008"
mnth = "1"
day = "31"
Run Code Online (Sandbox Code Playgroud)
这就是我在Python 2.7中要做的事情:
url = "https:.../KBOS/%s/%s/%s/DailyHistory.html" % (year, mnth, day)
Run Code Online (Sandbox Code Playgroud)
或者在3. +中使用.format().
我唯一知道在R中做的事情似乎很冗长并且依赖于粘贴:
url_start = "https:.../KBOS/"
url_end = "/DailyHistory.html"
paste(url_start, year, "/", mnth, "/", day, url_end)
Run Code Online (Sandbox Code Playgroud)
有没有更好的方法呢?
外部程序需要一个带有一些控制参数的输入文件,我希望使用R自动生成它们.通常,我只是paste("parameter1: ", param1, ...)用来创建长文本字符串并输出到文件,但脚本很快变得不可读.这个问题可能非常适合胡须,
library(whisker)
template= 'Hello {{name}}
You have just won ${{value}}!
'
data <- list( name = "Chris", value= 124)
whisker.render(template, data)
Run Code Online (Sandbox Code Playgroud)
我的问题是,没有安全检查data包含所有必需的变量,例如
whisker.render(template, data[-1])
Run Code Online (Sandbox Code Playgroud)
我会默默地忽略我忘记指定名字的事实.但是,如果我无法生成完整的配置文件,我的终端程序将崩溃.
另一个模板系统由brew; 它具有实际评估事物的优势,并且可能还有助于检测缺失的变量,
library(brew)
template2 = 'Hello <%= name %>
You have just won $<%= value %>!
'
data <- list( name = "Chris", value= 124)
own_brew <- function(template, values){
attach(values, pos=2)
out = capture.output(brew(text = template))
detach(values, pos=2)
cat(out, sep='\n')
invisible(out)
}
own_brew(template2, data)
own_brew(template2, data[-1]) …Run Code Online (Sandbox Code Playgroud)