特定列的不同print.gap值

时间:2017-01-06 00:12:00

标签: r printing formatting output

有没有办法为特定列设置不同的print.gap?

示例数据:

dd <- data.frame(col1 = 1:5, col2 = 1:5, col3 = I(letters[1:5]))
print (dd, quote=F, right=T, print.gap=5)

使用print.gap = 5输出

      col1     col2     col3
1        1        1        a
2        2        2        b
3        3        3        c
4        4        4        d
5        5        5        e

所需的输出(print.gap mix,前两个,print.gap = 5,第三个,print.gap = 12)

      col1     col2            col3
1        1        1               a
2        2        2               b
3        3        3               c
4        4        4               d
5        5        5               e

我意识到这可能无法通过更改print语句来实现,但也许有些人有另一种方法或建议。输出将保存在文本文件中。另请注意,解决方案应该足够灵活,不仅可以增加最后一列的间隙,还可以是数据框中具有不同print.gaps的任何列或多列。

1 个答案:

答案 0 :(得分:1)

通过定义&#34;适当的&#34;可能有办法做到这一点。替代打印方法,但这是一个可以用来独立调整每个列宽的hackish解决方案。

rbind(
  data.frame(lapply(dd, as.character), stringsAsFactors=FALSE),
  substring("                       ", 1, c(1,7,12))
)
#  col1    col2         col3
#1    1       1            a
#2    2       1            b
#3    3       1            c
#4    4       1            d
#5    5       2            e
#6    6       2            f
#7    7       2            g
#8    8       2            h