2012-04-11 55 views
1

我嘗試在一組列表上執行操作。例如:
列表: (1,1,2,3,3,4,4,4,4,4,4,5), (1,1,NA,NA,NA,NA,NA, NA,NA,NA,NA,NA), (1,1,1,1,NA,NA,NA,NA,NA,NA,NA,NA), (1,1,1,2,3,3, 4,4,4,4,4,5)Mathematica:缺少值的列表上的操作

然後,我想例如有一個包含手段的列表。 意味着[列表]不能正常運行,因爲它不知道如何處理缺失值「NA」。 我期望的是: (1,1,5/3,3,7/3,3,4,4等)

有沒有人如何忽略丟失或'文本'的值?就像你會在excel中操作這樣的函數一樣。 謝謝!

+3

有可能在這裏找到更多的幫助:http://mathematica.stackexchange.com/ – 2012-04-11 15:38:43

回答

2

看起來您似乎對矩陣列的平均值感興趣。如果您的數據陣列是矩形的,你可以做這樣的事情

lst = {{1, 1, 1, "NA", "NA"}, {2, 3, 4, 5, "NA"}, {6, 7, 8, 9, 10}}; 
Mean /@ DeleteCases[Transpose[lst], a_ /; Not[NumericQ[a]], {-1}] 

一個更簡單的方法是通過Sequence[]更換任何符號用於非可用的元素(例如"NA"lst):

Mean /@ (Transpose[lst] /. "NA" -> Sequence[]) 
2
l = {{1, 1, 1, "NA", "NA"}, {2, 3, 4, 5, "NA"}} 
[email protected]# & /@ (Cases[#, [email protected]"NA"] & /@ l) 

(* 
-> {1, 7/2} 
*) 
+0

也'平均/ @(個案[#,不包括@「NA」]&/ @ l)' – 2012-04-12 08:13:57