knitr-两个数据帧并排,在R标记中交替使用行颜色

knitr-两个数据帧并排,在R标记中交替使用行颜色,r,dataframe,r-markdown,knitr,R,Dataframe,R Markdown,Knitr,在R-markdown中,我喜欢用交替的行颜色(一灰一白)显示数据帧,如下所示 library(kableExtra) df <- data.frame(col_1 = c(1,2), col_2 = c(2,4)) knitr::kable(df)%>% row_spec(seq(1,nrow(df),2), background="#D3D3D3") %>% kable_styling(full_width=F) 库(kableExtra)

在R-markdown中,我喜欢用交替的行颜色(一灰一白)显示数据帧,如下所示

library(kableExtra)

df <- data.frame(col_1 = c(1,2), col_2 = c(2,4))
knitr::kable(df)%>%
  row_spec(seq(1,nrow(df),2), background="#D3D3D3") %>%
  kable_styling(full_width=F)
库(kableExtra)
df%
行规格(序号(1,nrow(df),2),背景=“#D3”)%>%
可折叠样式(全宽=F)
现在我想并排显示两个数据帧。我可以用你的力量完成它

df_1 <- df
df_2 <- df
knitr::kable(list(df_1, df_2)) %>%
  kable_styling(full_width=F)

dfu 1我们可以使用
bind\u cols

library(dplyr)
knitr::kable(bind_cols(df_1, df_2) %>% setNames(rep(names(df_1), 2))) %>%
 row_spec(seq(1,nrow(df_1),2), background="#D3D3D3") %>%
  kable_styling(full_width=F)

或者转换为
matrix
cbind
,因为
matrix
可以有重复的列名。使用
data.frame
make.unique
将通过向重复列名添加后缀来修改重复列名

knitr::kable(cbind(as.matrix(df_1), as.matrix(df_2))) %>%
 row_spec(seq(1, nrow(df), 2),  background="#D3D3D3")
 kable_styling(full_width=FALSE)

您是否尝试过插入一个包含两列的节,然后只调用kable两次?谢谢,我想如果数据帧的行数不同,那么我可以通过填充空单元格使它们相同。@user1700890您可以使用
rowr::cbind.fill(df_1,df_2,fill=NA)
@user1700890,但您可以从CRAN repo安装archives@user1700890您可以从中获取tar文件,并使用
install.packages
@user1700890中的
local=TRUE
安装它,或者如果您没有软件包,则在每个文件中创建一个序列列,并通过该列进行联接