【问题标题】:I cannot right-align the data in a column in a table我无法右对齐表中列中的数据
【发布时间】:2019-03-28 16:27:38
【问题描述】:

我无法右对齐表中某列(第五列)中的数据。当我打印为 txt 时,由于减号,列中的数字未对齐。 (在第五列)

WINGEN01    20001   1.02000   0.09000   -1.37000   0.25000   0.19000   0.09000
WINGEN01    20002   1.07000   0.10000   -2.02000   0.25000   0.25000   0.09000
WINGEN01    20003   0.53000   0.09000   0.33000   0.45000   0.23000   0.09000
WINGEN01    20004   1.32000   0.19000   1.23000   0.09000   0.23000   0.03000
WINGEN01    20005   1.16000   0.16000   0.62000   0.14000   0.26000   0.04000
WINGEN01    20006   1.28000   0.15000   0.51000   0.11000   0.20000   0.04000
WINGEN01    20007   0.98000   0.13000   0.64000   0.15000   0.14000   0.05000
WINGEN01    20008   1.17000   0.15000   0.88000   0.10000   0.20000   0.03000
WINGEN01    20009   0.42000   0.06000   -1.43000   0.60000   0.19000   0.10000
WINGEN01    20010   1.06000   0.40000   3.18000   0.52000   0.22000   0.02000
WINGEN01    20011   1.28000   0.15000   0.76000   0.10000   0.21000   0.03000
WINGEN01    20012   0.47000   0.06000   -1.30000   0.57000   0.22000   0.10000
WINGEN01    20013   1.14000   0.14000   0.97000   0.10000   0.16000   0.03000




write.table(Y_14_PAR, paste("Y_14_PAR.PAR"),  quote = F, row.names = F, col.names =F,sep = "   ")

【问题讨论】:

    标签: r datatable alignment right-align


    【解决方案1】:

    sprintf 可能是您需要的命令。它是一个 C 风格的字符串格式化命令,属于基础 R。示例如下。

    data.frame(a = sprintf("%-1.5f", pi*-3:3))
    
    # output NOT RUN
    
             a
    1 -9.42478
    2 -6.28319
    3 -3.14159
    4  0.00000
    5  3.14159
    6  6.28319
    7  9.42478
    
    # NOT RUN
    

    请注意,左对齐数字的是 % 后面的减号。我可以说没有正确的理由,但我认为它会完成这项工作。否则,请替换为 + 以强制两个 +/- 的符号。

    还要确保将函数包装在 as.numeric() 中,以免意外强制转换数据类型。

    【讨论】:

    • 感谢您的回答。但是,我正在尝试准备一个语法文件。但我需要将它应用于我打印的“Y_14_PAR”中的列。我运行代码时没有任何变化。 write.table(sprintf("%-1.5f",Y_14_PAR), paste("Y_14_PAR.PAR"), quote = F, row.names = F, col.names =F,sep = " ")。在本节中,我们有标题句子和数字。它只需要在第五列更正。但运行 write.table 后没有任何变化。
    【解决方案2】:

    如果您感兴趣的只是为了可视化目的而对齐列,请考虑以下软件包之一。

    编织者

    library(knitr)
    kable(data.frame(a = pi * -3:3))
    
    # Results NOT RUN
    
    |         a|
    |---------:|
    | -9.424778|
    | -6.283185|
    | -3.141593|
    |  0.000000|
    |  3.141593|
    |  6.283185|
    |  9.424778|
    

    DT

    library(DT)
    datatable(data.frame(a = pi * -3:3),
       caption = "My nicely formatted table") %>% 
       formatRound(~a)
    

    它们确实在控制台中工作,但在降价文档 (.RmD)、笔记本或闪亮的应用程序等中效果最好。

    【讨论】:

      猜你喜欢
      • 2015-05-05
      • 2011-03-31
      • 2011-07-03
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-06-17
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多