2012-04-11 2 views
1

Я стараюсь выполнять операции над набором списков. Например:
Списки: (1, 1, 2, 3, 3, 4, 4, 4, 4, 4, 4, 5), (1, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA), (1, 1, 1, 1, NA, NA, NA, NA), (1, 1, 2, 3, 3, 4, 4, 4, 4, 4, 4, 5)Mathematica: Операции над списком с отсутствующими значениями

Тогда я хотел бы, например, иметь список, содержащий средства. Средние [списки] не работают должным образом, потому что он не знает, как обрабатывать недостающие значения «NA». Что я ожидаю: (1, 1, 5/3, 7/3, 3, 4, 4 и т. Д.)

Кто-нибудь может игнорировать недостающие или «текстовые» значения? Например, вы будете использовать такую ​​функцию в excel, например. Спасибо!

+3

Возможно, вам поможет помощь здесь: http://mathematica.stackexchange.com/ –

ответ

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" в lst) по Sequence[]:

Mean /@ (Transpose[lst] /. "NA" -> Sequence[]) 
Смежные вопросы