在R中使用指数表示法

在R中使用指数表示法,r,numbers,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。但是平均值(u[,1])不适用于错误: 默认值(u):参数不是数字或逻辑:返回NA 同样,转换成数字也不能真正解决问题。R能识别这个符号吗,或者有没有转换的方法 所以str(u) > str(u

有一张表大致如下所示:

 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
。但是
平均值(u[,1])
不适用于错误:

默认值(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 ...


仔细阅读提供的警告消息,我看到
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

R可以很好地处理这个符号。事实上,它使用它。您的文件中可能有与此不同的条目。检查
u[is.na(as.numeric(u[,1])),1]
@Hein我试过使用
mean(u[,1])[1]3.343806e-07
上的
r3.1.1
如果有na,则表示
平均值(u[,1],na.rm=T)
@Hein这似乎很奇怪。@Hein你确定你使用了
平均值(u[,而不是
平均值(u)
如果u是向量,你可以表示
吗(u) 
。但是如果u是一个数据帧,您可以使用列索引
mean(u[,1])
或使用列名
mean(u$V1)
。您将得到相同的结果。
numeric(0)
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
mean(u[,1])
#[1] 3.343806e-07