1

我正在使用 RStudio 服务器(版本 0.98.994)和 dplyr(请参阅下面的会话信息)。但是打印 tbl_df 对象无法适应屏幕。每行的末尾总是有更多的字符(见 scroonshot 的红线)

在此处输入图像描述

我已经检查了浏览器: print tbl_df 对象在 Firefox 上工作而无需缩放,但不适用于 Chrome 和 Internet Explorer。浏览器历史记录在检查之前是干净的。

感谢您提出任何修复它的建议。

> sessionInfo()
R version 3.1.1 (2014-07-10)
Platform: x86_64-unknown-linux-gnu (64-bit)

locale:
 [1] LC_CTYPE=en_US.UTF-8 LC_NUMERIC=C         LC_TIME=C            LC_COLLATE=C         LC_MONETARY=C        LC_MESSAGES=C       
 [7] LC_PAPER=C           LC_NAME=C            LC_ADDRESS=C         LC_TELEPHONE=C       LC_MEASUREMENT=C     LC_IDENTIFICATION=C 

attached base packages:
[1] stats     graphics  grDevices utils     datasets  methods   base     

other attached packages:
[1] hflights_0.1     dplyr_0.4.1.9000

loaded via a namespace (and not attached):
[1] DBI_0.3.1      Rcpp_0.11.3    assertthat_0.1 magrittr_1.5   parallel_3.1.1 tools_3.1.1   
4

1 回答 1

1

这看起来可能只是tbl_dfprint 方法的结果,当空间非常紧张时,它会进一步截断第一列。

这是来自的片段dplyr:::trunc_mat,用于dplyr:::print.tbl_df

... 
rownames(df) <- NULL
is_list <- vapply(df, is.list, logical(1))
df[is_list] <- lapply(df[is_list], function(x) vapply(x, 
    obj_type, character(1)))
mat <- format(df, justify = "left")
width <- width %||% getOption("dplyr.width", NULL) %||% getOption("width")
values <- c(format(rownames(mat))[[1]], unlist(mat[1, ]))
names <- c("", colnames(mat))
w <- pmax(nchar(values), nchar(names))
cumw <- cumsum(w + 1)
too_wide <- cumw[-1] > width
if (all(too_wide)) {
    too_wide[1] <- FALSE
    df[[1]] <- substr(df[[1]], 1, width)
}
...

您可能可以调整 and 的一个或多个参数trunc_mat()print.tbl_df()或者尝试使用不同的打印方法打印表格。

您也可以尝试调整 dplyr 打印选项,类似于

> grep("dplyr", names(options()), value=TRUE)
[1] "dplyr.print_max"  "dplyr.print_min"  "dplyr.strict_sql"
于 2015-02-09T01:22:47.930 回答