2017-04-19 77 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

這將只在列中的所有值都是唯一的時才起作用。 –