r - 查看数据帧的内容时是否可以截断输出?

标签 r printing dataframe output-formatting

我有一个带有一些非常长的“评论”列的数据框。当我显示它们时,它们被分成不同的块,使得很难跨行阅读。是否可以更改 R 中的设置或修改对 data.frame 的调用以截断特定长度的字符串?

示例:3 列数据框

data.frame(cbind(rep(1,5),rep(c("very very long obnoxious character string here" ,"dog","cat","dog",5)),rep(c("very very long obnoxious character string here" ,"dog","cat","dog",5))))

在我的屏幕上看到的结果数据框:
  X1                                             X2
1  1 very very long obnoxious character string here
2  1                                            dog
3  1                                            cat
4  1                                            dog
5  1                                              5
                                          X3
1 very very long obnoxious character string here
2                                            dog
3                                            cat
4                                            dog
5                                              5

最佳答案

我推荐一种像这样的显式方式:

f <- function(x) data.frame(lapply(x, substr, 1, 5))

用法:
> f(d)
  X1    X2    X3
1  1 very  very 
2  1   dog   dog
3  1   cat   cat
4  1   dog   dog
5  1     5     5

尽管可以更改默认行为,但我不建议:
body(format.data.frame)[[5]] <- quote(for (i in 1L:nc) rval[[i]] <- substr(format(x[[i]], ..., justify = justify), 1, 5))
unlockBinding("format.data.frame", baseenv())
assign("format.data.frame", format.data.frame, pos = baseenv())
lockBinding("format.data.frame", baseenv())
rm(format.data.frame)

用法:
> d
  X1    X2    X3
1  1 very  very 
2  1   dog   dog
3  1   cat   cat
4  1   dog   dog
5  1     5     5

关于r - 查看数据帧的内容时是否可以截断输出?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8379988/

相关文章:

java - 如何以编程方式打印 Jasper 报告

c - 需要帮助打印按天排序的文件

r - Lapply to all columns in a data.frame 除了一个并替换R中的数据

php - 打印表数据mysql php

r - 计算与其他列的双重类别关联的列中的特定字符。根据频率仓迭代进行

r - 如何从RStudio中运行的脚本获取所有输出

r - 查找并替换为列表中的示例

python - pandas.DataFrame.to_sql 的进度条

r - 根据相同数据框的逻辑获取列名向量

R `dev.new()` 卡住