2017-04-19 63 views
-1

我已经从data.set中剪切了一帧。 pictureR:从列表中计算均值()

问题是,我无法计算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 
+1

欢迎堆栈溢出!请阅读关于[如何提出一个好问题](http://stackoverflow.com/help/how-to-ask)以及如何给出[可重现的示例]的信息(http://stackoverflow.com/questions/ 5963269)。这会让其他人更容易帮助你。 – zx8754

+0

所有项目似乎都是数字。请尝试'mean(c1 $ Var1)' –

+0

尝试'mean(c1 [,'Var1“])'。 – zx8754

回答

1

在列中的数据的数据类型是数字和所需的列的平均值也将有一个数据类型的数字。您收到的错误: 在mean.default(c1 [“var1”])中:参数不是数字或逻辑:返回NA。这意味着当您使用单个方括号[]时,您获得的输出不是数字。单个方括号总是返回具有相同数据类型的数据,在这种情况下,它将是一个list()。但是你想要的是带数字数据类型的mean()。尝试 mean(c1[["var1"]]) 更好的方法是使用列索引。希望这可以帮助!

Example.

+0

这没有工作:/我可以以某种方式隔离只Var1 ,没有剩下的数字? – Christina

2

所以你的数字是因素。

尝试

mean(as.numeric(levels(c1$Var1))) 
+0

是的,它的工作!谢谢! – Christina

+0

这将只在列中的所有值都是唯一的时才起作用。 –