我从data.set剪切了一个帧。
问题是,我无法计算Var1的平均值,因为它可能不是数字。
我该如何处理?
mean(c1[, "Var1"])
mean(c1$Var1)
不起作用......
> c1["Var1"]
Var1
116 661574
128 671194
331 847073
454 933425
652 1113353
761 1220950
764 1223786
978 1580029
1150 1987981
1367 2900735
1380 2976310
1383 3002309
1404 3149761
1408 3178648
1439 3431430
1488 3754229
1506 3910297
> mean(c1[, "Var1"])
[1] NA
答案 0 :(得分:2)
所以你的数字是因素。
尝试
mean(as.numeric(levels(c1$Var1)))
答案 1 :(得分:1)
列中数据的数据类型是数字,所需列的平均值也将是数字类型。你得到的错误:
在mean.default中(c1 [" var1"]):参数不是数字或逻辑:返回NA。这意味着使用单方括号[]时获得的输出不是数字。单方括号始终返回具有相同数据类型的数据,在本例中为list()。但你想要的是具有numeric数据类型的mean()。尝试
mean(c1[["var1"]])
更好的方法是使用列索引。希望这有帮助!