gpt4 book ai didi

r - 如何在表中取消零打印(zero.print =""不起作用)

转载 作者:行者123 更新时间:2023-12-04 04:12:46 25 4
gpt4 key购买 nike

我有要隐藏的NA和零的对角矩阵。

na.print =“”工作正常,但zero.print =“”。似乎将0.00视为!= 0?

这是一个带有打印输出的可运行示例,因此您可以了解我的意思:

x <- matrix(c(0.01, NA, NA, NA, 0.00, 0.00, NA, NA, 0.00, 0.00, -0.01, NA, 0.00, 0.00, 0.00, 0.00), nrow=4, byrow=TRUE)
x
[,1] [,2] [,3] [,4]
[1,] 0.01 NA NA NA
[2,] 0.00 0 NA NA
[3,] 0.00 0 -0.01 NA
[4,] 0.00 0 0.00 0

print.table(x, na.print="", zero.print=".")
[,1] [,2] [,3] [,4]
[1,] 0.01
[2,] 0.00 0.00
[3,] 0.00 0.00 -0.01
[4,] 0.00 0.00 0.00 0.00

遵循以下有用的答案(谢谢大家!),并根据print.table中的显式选择为不为零。print项目,其中表中的任何项目均失败(x == round(x)),这是一个适用于以下版本的版本浮点。我是为数据框打印任务编写的,但它适用于矩阵。
print.dataframe <- function (x, digits = getOption("digits"), quote = FALSE, na.print = "", zero.print = "0", justify = "none", ...){
xx <- format(x, digits = digits, justify = justify)
if (any(ina <- is.na(x)))
xx[ina] <- na.print
i0 <- !ina & x == 0
if (zero.print != "0" && any(i0))
xx[i0] <- zero.print
if (is.numeric(x) || is.complex(x)){
print(xx, quote = quote, right = TRUE, ...)
}else{
print(xx, quote = quote, ...)
}
invisible(x)
}

print.dataframe(bob, zero.print = ".", justify="left")

最佳答案

这是一种解决方法:

> print.table(local({x[x==0] <- NA; x}))
[,1] [,2] [,3] [,4]
[1,] 0.01
[2,]
[3,] -0.01
[4,]

如果您需要对NA和零使用不同的表达式,那么,
> print(ifelse(is.na(x), "", ifelse(x == 0, ".", x)), quote = FALSE)
[,1] [,2] [,3] [,4]
[1,] 0.01
[2,] . .
[3,] . . -0.01
[4,] . . . .

关于r - 如何在表中取消零打印(zero.print =""不起作用),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11739750/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com