在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