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, 2, 3, 3, 4, 4, 4, 4, 4, 4, 5)

次に、たとえば手段を含むリストが必要です。Mean[lists] は、欠損値 "NA" を処理する方法がわからないため、適切に実行されません。私が期待するのは:(1、1、5/3、7/3、3、4、4など)

欠落している値または「テキスト」値を無視する方法はありますか? たとえば、Excelでそのような機能を操作するように。ありがとう!

4

2 に答える 2

2
l = {{1, 1, 1, "NA", "NA"}, {2, 3, 4, 5, "NA"}}
Mean@# & /@ (Cases[#, Except@"NA"] & /@ l)

(*
-> {1, 7/2}
*)
于 2012-04-11T18:22:01.367 に答える
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}]

より簡単な方法は、使用できない要素 (たとえば)"NA"に使用されている記号を次のように置き換えることです。lstSequence[]

Mean /@ (Transpose[lst] /. "NA" -> Sequence[])
于 2012-04-12T10:18:27.210 に答える