我有一组数据,其中实验室提交了微生物对数减少的计算。有时只能声明一个大于或小于某个数字的值。此处的示例数据:
test.df <- tribble(
~x, ~y, ~z,
#--|--|----
"pa", "lab1", "-3.52",
"pa", "lab2", ">5.0",
"pa", "lab3", "<-1.567")
是否有任何例程可以使我以正确的对齐方式对其进行格式化,即
Organism Laboratory LogReduction
-------- ---------- ------------
pa lab1 -3.52
pa lab2 > 5.0
pa lab3 <-1.567
即小数点对齐,所有大于或小于的符号也对齐吗?
基本上,我试图得到一个这样的数据框,我可以用康宝来打印
test.df <- tribble(
~x, ~y, ~z,
#--|--|----
"pa", "lab1", " -3.52 ",
"pa", "lab2", "> 5.0 ",
"pa", "lab3", "<-1.567")
我尝试了一些sprintf修改,但看不到任何符合要求的东西。
答案 0 :(得分:0)
我还没有看到执行此操作的功能,但是您应该可以编写一个功能。例如:
prefix <- gsub("[^><]*", "", test.df$z)
prefix[nchar(prefix) < 1] <- " "
suffix <- gsub("[<>]", "", test.df$z)
suffix <- format(as.numeric(suffix))
test.df$z <- paste0(prefix, suffix)
此时,test.df$z
具有所需的格式,但是当您将其放入Markdown表中时,前导空格将被删除,并且所有内容将无法对齐。要解决此问题,您可以尝试用数字空格字符替换空格字符。您还需要用减号(而不是连字符)替换“-”。
这对我来说适用于HTML:
test.df$z <- gsub(" ", " ", test.df$z)
test.df$z <- gsub("-", "−", test.df$z)
kable(test.df)
它产生此表:
如果您使用的是HTML以外的其他输出格式,则空格和连字符替换必须不同。