1

我有一些数据要记录下来,然后制作热图。-Inf由于我的数据框中的零生成了热图,因此抱怨。

我想将所有的零转换成非常小的数字。我认为这应该相对容易,但我遇到了错误。例如。

Error in ifelse(ztest = 0, 1e-05, ztest) : unused argument(s) (ztest = 0)

以下是一些示例数据:

 ztest<-data.frame(A=c(0,1,2,3),B=c(0,0,1,2),C=c(1,2,3,4))

这是我所做的一些尝试,它们都抱怨未使用的论点,所以我想我不明白如何正确编写这些函数。尽管这些尝试看起来都与本网站上发布的类似问题的答案非常相似。

  1. z_inf <- ifelse(ztest=0,0.00001,ztest)
  2. z[z=0]<-0.00001
  3. inf_conv <- function(x){ifelse(x=0,0.00001,x)} z_inf<-apply(z,c(1,2),inf_conv)
4

1 回答 1

5

所以你有更多的评论,这里是你的尝试#2的编辑,它应该做你想要的:

z[z==0] <- .00001

您之前只有一个“=”,因此它试图将 0 值分配给数据框 z,而不是按照您的意图对 0 值进行子集化。

于 2012-07-16T18:09:31.383 回答