有一张看起来大致如下的表:
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)
答案 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