我有一个如下数据框:
library(dplyr)
mydf <- data_frame(headline = c('this is the first news',
'this is the second news'),
fulltext = c('Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum',
'Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum'))
基本上,我想创建一个文档(pdf
,html
,无论如何),为每篇文章打印headline
后跟{{1}中的100个第一个字符列。
像
这样的东西 - fulltext
输出的开始
这是第一个新闻
Lorem ipsum dolor sit amet,consectetur adipiscing elit,sed do eiusmod tempor incididunt ut labore et dolore magna aliqua。 Ut enim ad minim veniam,quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat。 Duis aute irure dolor in repreptderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur。 Excepteur sint occaecat cupidatat non proident
这是第二个新闻
Lorem ipsum dolor sit amet,consectetur adipiscing elit,sed do eiusmod tempor incididunt ut labore et dolore magna aliqua。 Ut enim ad minim veniam,quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat。 Duis aute irure dolor in repreptderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur。 Excepteur sint occaecat cupidatat non proident
- html/pdf
输出结束
如何使用html/pdf
?
答案 0 :(得分:4)
这可以通过for
循环,cat
和块选项results = 'asis'
---
title: "Untitled"
output: html_document
---
```{r, include = FALSE}
library(dplyr)
mydf <- data_frame(headline = c('this is the first news',
'this is the second news'),
fulltext = c('Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum',
'Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum'))
```
```{r, echo = FALSE, results = 'asis'}
for (i in seq_len(nrow(mydf))){
cat(paste0("**", mydf[["headline"]][i], "**"))
cat("\n\n")
cat(
paste0(
gsub("\\n", "\n\n", substr(mydf[["fulltext"]][i], 1, 100), "...")
)
)
cat("\n\n")
}
```
答案 1 :(得分:2)
你真的想出于某种原因使用针织者吗?一个糟糕的方法:
for(i in 1:nrow(mydf)){
temp=(paste(mydf[i,1],'<br>','\n',mydf[i,2]))
write.table(temp,paste(i,'.txt'), row.names = F,col.names = F)
knit(paste(i,'.txt'),paste(i,'.html'))
}