相关疑难解决方法(0)

怎么做r中的printf?

我正在寻找如何在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,...的结果

r

41
推荐指数
2
解决办法
4万
查看次数

R中的字符串格式化运算符是否与Python的%相似?

我有一个网址,我需要发送使用日期变量的请求.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)

有没有更好的方法呢?

python string format r

21
推荐指数
3
解决办法
2万
查看次数

使用brew/whisker进行错误安全的模板化

外部程序需要一个带有一些控制参数的输入文件,我希望使用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)

templates r

7
推荐指数
1
解决办法
286
查看次数

标签 统计

r ×3

format ×1

python ×1

string ×1

templates ×1