小编Dad*_*ner的帖子

我可以使用knitr将CSS样式应用于单个表格单元格吗?

是否可以使用knitr?将类属性应用于单个表格单元格?我已成功将类属性应用于包含knitr::kable生成的表的节标题,并使用它来格式化整个表.但是,我希望能够有条件地格式化单个单元格,这些单元格需要能够将类应用于特定<td>元素.

我目前的解决方法是以编程方式将单元格内容包装在一对<span>标签中并将其传递给knitr::kable.这种方法只允许我格式化单元格内的文本与整个单元格(例如设置单元格背景颜色).这是我目前使用的一个例子:

## Read in the report, process the data, send to kable
rpt <- generate.report()
mutate(rpt, Col2 = ifelse(abs(Col2) > Threshold,
                          paste('<span class="warning">',
                                sprintf("%.2f", Col2), '</span>'),
                          sprintf("%.2f", Col2))) %>%
  knitr::kable(format="markdown", align = c("l", rep("r", 4)),
               col.names = gsub("\\.", "<br>", colnames(.)))
Run Code Online (Sandbox Code Playgroud)

这导致以下示例HTML输出:

<td align="right"><span class="warning"> -1.74 </span></td>
Run Code Online (Sandbox Code Playgroud)

我希望能够让knitr :: kable生成这样的东西:

<td align="right" class="warning"> -1.74 </td>
Run Code Online (Sandbox Code Playgroud)

这样我就可以将css样式应用于<td>标签副<span>标签.

html css r knitr

16
推荐指数
1
解决办法
673
查看次数

如何在R中发布简单的HTML表单?

我对R编程比较陌生,我试图将我在Johns Hopkins数据科学专业中学到的一些东西用于实际应用.具体来说,我想自动化从美国财政部网站下载历史债券价格的过程

使用Firefox和R,我能够确定美国财政部网站使用非常简单的HTML POST表单来指定感兴趣的报价的单个日期.然后返回所有未偿债券的二级市场信息表.

我没有尝试使用两个不同的R包来向美国财政部Web服务器提交请求.野兔是我尝试过的两种方法:

尝试#1(使用RCurl):

url <- "https://www.treasurydirect.gov/GA-FI/FedInvest/selectSecurityPriceDate.htm"
td.html <- postForm(url,
                    submit = "Show Prices",
                    priceDate.year  = 2014,
                    priceDate.month = 12,
                    priceDate.day   = 15,
                   .opts = curlOptions(ssl.verifypeer = FALSE))
Run Code Online (Sandbox Code Playgroud)

这导致返回并存储的网页,td.html但它包含的是来自treasurydirect服务器的错误消息.我知道服务器正在运行,因为当我通过浏览器提交相同的请求时,我得到了预期的结果.

尝试#2(使用rvest):

s <- html_session(url)
f0 <- html_form(s)
f1 <- set_values(f0[[2]], priceDate.year=2014, priceDate.month=12, priceDate.day=15)
test <- submit_form(s, f1)
Run Code Online (Sandbox Code Playgroud)

不幸的是,这种方法甚至不会留下R并导致来自R的以下错误消息:

Submitting with 'submit'
Error in function (type, msg, asError = TRUE)  : <url> malformed
Run Code Online (Sandbox Code Playgroud)

我似乎无法弄清楚如何查看正在发送给rvest的"格式错误"的文本,以便我可以尝试诊断问题.

任何建议或提示解决这个看似简单的任务将不胜感激!

html post r rcurl rvest

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

"Knit HTML"在Rstudio 0.98中做了什么?

我试图找出RStudio在按下RStudio版本0.98.1091中的"编织HTML"按钮时使用的命令和默认选项,因为当我knit()从控制台运行该函数时,我得到一个稍微不同的中间降价文件.

具体来说,当我对R markdown文件使用以下标题时:

---
title: "Report Title"
author: Daddy the Runner
date:  "`r format(Sys.time(), '%A, %B %d, %Y')`"
output: 
  html_document:
    keep_md: true
---
Run Code Online (Sandbox Code Playgroud)

按下"编织HTML"按钮时,我得到以下markdown文件:

# Report Title
Daddy the Runner  
`r format(Sys.time(), '%A, %B %d, %Y')`
Run Code Online (Sandbox Code Playgroud)

当我执行以下命令:时knit("myReport.Rmd"),我得到以下markdown文件:

---
title: "Report Title"
author: Daddy the Runner
date:  "Saturday, January 10, 2015"
output: 
  html_document:
    keep_md: true
---
Run Code Online (Sandbox Code Playgroud)

显然,RStudio按钮正在使用其他一些选项生成中间降价文件,但我无法在RStudio文档中找到有关它的任何信息.

关键问题是日期线.出于某种原因,RStudio在制作markdown文件时不会在标题中执行内联r块.(但是,它会在生成最终HTML之前执行.)然而,knit()函数调用会在生成markdown文件时执行内联块.

我在两个降价文件中注意到的唯一其他差异与图的生成有关.这两种方法生成不同大小的图形(命令行:504 x 504)与(按钮:672 x 480)并将它们放在不同的目录中.

在Rstudio 0.96的R Markdown文件中按"Knit HTML"时,我尝试了这个命令的运行方式.问题是插入一个Sys.sleep(30)电话,但没有提供任何关于RStudio用来编织文档的信息.它确实暂停了R Markdown控制台窗口中的输出,这是不必要的,因为RStudio始终保留所有输出.我在输出中没有看到的是RStudio发出的命令.

任何洞察这些差异的性质将不胜感激.虽然我喜欢使用IDE环境和它们提供的便利,但我真的很想了解它们正在做什么,这样我就能更好地预测它们的行为.

markdown r rstudio knitr r-markdown

6
推荐指数
1
解决办法
1368
查看次数

标签 统计

r ×3

html ×2

knitr ×2

css ×1

markdown ×1

post ×1

r-markdown ×1

rcurl ×1

rstudio ×1

rvest ×1