将零转换为非常小的数字

时间:2012-07-16 14:11:30

标签: r

我有一些数据,我想记录,然后制作热图。由于我的数据框中的零生成-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)

1 个答案:

答案 0 :(得分:3)

为了让你有更多的评论,这里是你的尝试#2的编辑,应该做你想要的:

z[z==0] <- .00001

之前只有一个'=',所以它试图将值0赋给数据帧z,而不是按预期将0值分组。