在R中使用指数表示法

时间:2014-10-26 08:31:37

标签: r numbers

有一张看起来大致如下的表:

 V1
1  3.392134e-07
2  3.317284e-07
3  3.398608e-07
4  3.272904e-07
5  3.468952e-07
6  3.212954e-07
R 中的

。我从一个带有read.table的文件中读取它,它是一个数据帧。该表称为u。但mean(u[,1])不适用于错误:

  

在mean.default(u)中:参数不是数字或逻辑:返回NA。

同样转换为数字并没有真正解决问题。 R 可以识别这种表示法还是有某种转换方式?

所以str(u)

> str(u)
'data.frame':   50 obs. of  1 variable:
 $ V1: num  3.39e-07 3.32e-07 3.40e-07 3.27e-07 3.47e-07 ...

u[is.na(as.numeric(u[,1])), 1]

numeric(0)

1 个答案:

答案 0 :(得分:1)

仔细阅读提供的警告信息,我看到mean.default(u)我可以重现这样的问题:

u <- read.table(text=" V1
1  3.392134e-07
2  3.317284e-07
3  3.398608e-07
4  3.272904e-07
5  3.468952e-07
6  3.212954e-07", header=TRUE)

mean(u)
#[1] NA
#Warning message:
#  In mean.default(u) : argument is not numeric or logical: returning NA

与您告诉我们的内容相反,您试图将整个data.frame传递给mean。确保只传递一列:

mean(u[,1])
#[1] 3.343806e-07