tidyverse为tibbles提供的格式对于在控制台中显示结果很有用。
如何将tibble格式导出为.txt或.csv文件?
library(tidyverse)
set.seed(123)
df = replicate(n=5, rnorm(n=10))
tbl = as_tibble(df)
tbl = tbl %>% mutate(
V1 = num( (abs(V1)/max(abs(V1))), label = "%", scale = 100, digits = 2, notation = "dec"),
V2 = num(V2, digits = 1, notation = "dec"),
V3 = num(V3, sigfig = 3, notation = "sci") )
out_path = getwd() # modify as needed
print(tbl, n=Inf, width = Inf)
# A tibble: 10 × 5
V1 V2 V3 V4 V5
% <dec:.1!> <sci:3> <dbl> <dbl>
1 32.68 1.2 -1.07e+0 0.426 -0.695
2 13.42 0.4 -2.18e-1 -0.295 -0.208
3 90.88 0.4 -1.03e+0 0.895 -1.27
4 4.11 0.1 -7.29e-1 0.878 2.17
5 7.54 -0.6 -6.25e-1 0.822 1.21
6 100.00 1.8 -1.69e+0 0.689 -1.12
7 26.87 0.5 8.38e-1 0.554 -0.403
8 73.76 -2.0 1.53e-1 -0.0619 -0.467
9 40.05 0.7 -1.14e+0 -0.306 0.780
10 25.99 -0.5 1.25e+0 -0.380 -0.0834
write_tsv(tbl, file = file.path(out_path, "tibble_example.txt") )
我想编写tibble的格式化版本,就像print()所显示的那样,具体来说,V1、V2和V3应该写成printed,而V4和V5应该写成标准位数(多于printed)。
我并不特别关心写入的文件是否具有头文件( % <dec:.1!> <sci:3> <dbl> <dbl> )
,但是包含它是很好的。
1条答案
按热度按时间g52tjvyc1#
如果你只想捕获打印输出,你可以使用
capture.output
把它设置成一个文件。尽管你可能想关闭默认的终端转义着色。你可以创建一个帮助函数