Ода R
- Деталі
- Категорія: Думки в онлайн
- Створено: Субота, 20 грудня 2014, 17:30
- Опубліковано: Субота, 20 грудня 2014, 17:30
- Автор: Strix
- Перегляди: 1030
Від початку самостійних екологічних досліджень мій власний шлях паломництва статистичним софтом простягався від Quatro Pro, який працював під MS DOS, через MS Excel (які, до речі все ж не є статистичним ПЗ) до Statistica. Трохи заглядав до SPSS, хоча і не користувався ним. Коли характер проблем, вивченням яких займаюся, привів мене до широкого використання методів багатовимірної статистики, я дізнався про існування R. Вже користуючись R, дізнався ще й про існування PAST і навіть поглянув у його менюшки, проте не сподобалося.
І от що я маю сказати з свого досвіду. Справа це звичайно винятково особиста, але якщо ви ведете дослідження давно, специфіка ваших досліджень така, що статистична обробка даних займає чимало часу, і при цьому використовуєте щось на зразок MS Excel/Statistica/SPSS/PAST etc., моя порада -- користуйтеся ними і надалі та не читайте решту повідомлення, бо вона не для вас (так, я знаю, у т.ч. і на своєму досвіді, що таке сформований консерватизм у користуванні тим чи іншим інструментарієм). Решта ж повідомлення адресована для молодших колег та студентів.
Їм же хочу порадити не робити моїх помилок і не чіпати перелічений у попередньому абзаці мотлох для статистичної обробки даних. Вчить R. Весь витрачений на його вивчення час з лишком буде компенсований колосальними можливостями автоматизації рутинних операцій. Наведу приклад. Вам доводилося обчислювати для результатів обліків, геоботанічних описів etc. так звані індекси видової різноманітності (Шеннона, Сімпсона, Пієлу)? Всього 12 рядків скрипту (див. внизу повідомлення) для R (зі встановленим пакетом vegan) для будь-якої первинної матриці у мить обчислить: а) кількість видів у кожному описі; б) індекс різноманітності Шеннона (при цьому за обома варіантами формул -- з натуральним логарифмом і з логарифмом з основою 2); в) індекс Сімпсона; г) індекс вирівняності Пієлу, а по закінченню обчислення отримані дані запише у таблицю в окремий файл.
Тут можна заперечити, що все це, наприклад, в MS Excel можна зробити п’ятьма формулами. Ускладнимо задачу. Вам доводилося обчислювати матриці усіляких мір відстані чи подібності (Евкліда, Жаккара і таке інше). А проводити кластерний аналіз із побудовою дендрограм? Так от, написаний мною скрипт, який за мить для будь-якої кількості первинних матриць обчислить матриці мір відстані (чи подібності -- у залежності від того, що потрібно досліднику) і запише їх в окремі файли, а також побудує дендрограми (будь-яким потрібним методом) і збереже їх у файли зображень, містить всього лише 16 рядків коду :)
tab <- read.table(file.choose(), dec="," sep=";" header=TRUE) tabt <- t(tab) library("vegan") Shannon <- diversity(tabt) Simpson <- diversity(tabt, index = "simpson") Shannon.Log2 <- diversity(tabt, index = "shannon", base = 2) S <- specnumber(tabt) Pielou <- Shannon/log(S) restabt <- cbind(S, Shannon, Shannon.Log2, Simpson, Pielou) restab <- t(restabt) restab <- round(restab, 2) write.table(file="diversity.csv", restab, dec=",", sep=";")