R - 在PSQL等控制台中打印记录

时间:2017-09-19 08:58:57

标签: r

有没有办法从R控制台中的表中打印记录,看起来像PSQL并启用了\ x?意思是在垂直方向打印它?

这样的事情:

-Record1-
Var1 | xxx
Var2 | yyy
Var3 | zzz

2 个答案:

答案 0 :(得分:1)

来自kable

knitr会对您有所帮助!

> df1
  E     F         G         H
1 A 0.9,1                    
2 B       0.98,0.34 0.98,0.34
3 C                          
> knitr::kable(df1)


|E  |F     |G         |H         |
|:--|:-----|:---------|:---------|
|A  |0.9,1 |          |          |
|B  |      |0.98,0.34 |0.98,0.34 |
|C  |      |          |          |
> 

答案 1 :(得分:0)

如果您使用gathertidyr数据集,它将基本上以该格式存储。

如果原件看起来像..

        Var1  Var2  Var3   
Record1 xxx   yyy   xxx

收集的数据集看起来像......

Record1 Var1 xxx
Record1 Var2 yyy
Record1 Var3 zzz

或者,如果只是为了快速检查单个记录而不需要重新构建数据集,甚至使用str(YourData[x,])就足够了。

或者,如果您在示例中设置了样式,则此功能是接近它的一种(粗略)方式:

vertical_print_function <- function(data_vert,console=T){
psql <- character()
for(i in 1:nrow(data_vert)){
  psql <- append(psql,paste0("\n\n-Record ",i,"-"))
  colnames_s <- colnames(data_vert)
  var_names <- colnames_s %>% stringr::str_pad(width=max(nchar(.)))
    for(x in 1:ncol(data_vert)){
      psql <- append(psql,paste0("\n",var_names[x],"  |  ",data_vert[i,colnames_s[x]]))
  }
} 
if (console==T) {
  cat(psql)
  } else {
    return(psql)
  }
}

consoleTRUE立即打印到控制台(危险/无意义,如果有许多记录)。 FALSE只返回字符串,然后可以将其导出到文本文件中。