如何在 rmarkdown 中格式化数据框

How to format a dataframe in rmarkdown

我尝试在 rstudio 中使用 rmarkdown。 问题是我有一个数据框,其中一个列是一个长字符串。 当我如下使用 rmarkdown 时:

```{r, echo=FALSE}
x1 <- c(1,2)
x2 <- c("aaaaaaaaaaaaaa", "bbbbbbbbbbbbbbbbbbb")
x3 <- c("xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx xxxxx, xxxxxxxxxxxxxxxxxxx",
       "yyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyy yyyy, yyyyyyyyyyyyyyyyyyyyyy")

df <- data.frame(x1=x1, x2=x2,x3=x3)
```

```{r, echo=FALSE}
df
```

我得到以下输出(我使用 html):

##   x1                  x2
## 1  1      aaaaaaaaaaaaaa
## 2  2 bbbbbbbbbbbbbbbbbbb
##                                                                  x3
## 1    xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx xxxxx, xxxxxxxxxxxxxxxxxxx
## 2 yyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyy yyyy, yyyyyyyyyyyyyyyyyyyyyy

首先,我不喜欢将 x3 作为单独的一行打印;其次,我更喜欢左对齐。我该怎么做?

谢谢。

可以通过options(width=x)控制元素的宽度,通过调用print(df, right=FALSE)可以左对齐。你可以隐藏这个 cruft(虽然你可能不想),例如:

---
title: "Interesting data.frame"
author: "Me"
date: "15 April 2015"
output: html_document
---

```{r, echo=FALSE}
options(width=100)
```


```{r}
x1 <- c(1,2)
x2 <- c("aaaaaaaaaaaaaa", "bbbbbbbbbbbbbbbbbbb")
x3 <- c("xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx xxxxx, xxxxxxxxxxxxxxxxxxx",
        "yyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyy yyyy, yyyyyyyyyyyyyyyyyyyyyy")

df <- data.frame(x1=x1, x2=x2,x3=x3)
```

```{r, eval=FALSE}
df
```

```{r, echo=FALSE}
print(df, right=FALSE)
```

... 产生 ...