Розрахунок темпу зростання та центру зменшення - Група користувачів програмного забезпечення R

Франкомовний форум для обговорення програми програм статистичного обчислення R

розрахунок

Обчисліть швидкість росту та зменшіть центр

Обчисліть швидкість зростання та зменшіть центр

Повідомлення від Коралі Деніот »26 липня 2017, 09:22

Ось я знову за нове запитання, трохи менш складне, як правило. Дякую всім, хто мені допоможе:)

Моє запитання: Як розрахувати темпи приросту та зменшення центрування моїх даних?

ОПИС НАБОРУ ДАНИХ:
4 колонки
- Ім'я особи (вуликами є 20 осіб)
- Вага особини (вулики зважуються)
- Зовнішня температура (ми вимірюємо зовнішню температуру)
- Дата та час збору даних про вагу та температуру
(Див. Шаблон таблиці необроблених даних у коді нижче)

ЗАПИТАННЯ: РОЗРАХУНІТЬ РІВЕНЬ І ЦЕНТР ЗМЕНШИТИ ВАГУ
Я хотів би додати 2 стовпці:
-Стовпець, який обчислює швидкість зміни ваги: ​​tx.crois = ((вага на date.time 1) - (вага на date.time 0))/(вага на date.time 0)
-Стовпець, який обчислює зменшену вагу в центрі на одну особу
NB: Я нагадую вам, що існує 20 осіб
(Див. Модель бажаної підсумкової таблиці в коді нижче)

==> Мета цієї маніпуляції полягає в тому, щоб зробити лінійну регресію
-швидкість збільшення ваги в залежності від температури
-відцентрована вага зменшується залежно від температури.

Щиро дякуємо за допомогу, і особливо не соромтеся, якщо вам потрібна додаткова інформація! Із задоволенням:)

Re: Обчисліть темп зростання та зменшіть центр

Повідомлення від Чарльз Маркуччі »26 липня 2017, 09:35

Щоб вирішити цю проблему, я почну з додавання стовпців

тоді я даю їм ім'я

Я використовую цикл for для обчислення ваги, а також зменшеної центральної ваги, але коли ви говорите вагу на дату. Час 0, це однакове посилання для всіх? тобто для фізичних осіб 1 "01.01.2017 8:00:00" ?
яка формула зменшення центральної ваги ?

Re: Обчислити швидкість росту та зменшити центр

Повідомлення від Серж Рапенн »26 липня 2017, 10:10

Для темпів зростання ви можете зробити наступне:

бібліотека (dplyr)
вкладка% group_by (ім'я)%>% мутація (tx.crois = (вага-свинець (вага))/вага)

для центрированной ваги, зменшеної на окремих, я сушу

Re: Обчисліть темп зростання та зменшіть центр

Повідомлення від П’єр-Ів Беррар »26 липня 2017, 10:14

Я доповнюю відповідь Сержа:

вкладка%>%
group_by (ім'я)%>%
мутувати (
weight_tx.crois = вага/відставання (вага) - 1,
вага_CR = шкала (вага)
)

Re: Обчислити швидкість росту та зменшити центр

Повідомлення від Чарльз Маркуччі »26 липня 2017, 10:14

Тому я виходив з того, що зрозумів із висловлювання, і створив цей маленький фрагмент коду

сподіваючись, що про це просять

Re: Обчислити швидкість росту та зменшити центр

Повідомлення від Коралі Деніот »26 липня 2017, 11:33

Дякуємо за велику допомогу !

Є невелика шарлатанка. Дійсно, як ви вже помітили, вимірювання ваги не є регулярним, і між різними показаннями може бути інтервал 10 хв 15 хв або 30 хв. Отже, підраховуючи швидкість змін, ви повинні це врахувати. Швидкість зміни ваги повинна розраховуватися як функція інтервалу часу між двома показаннями.

Приклад для другого рядка (перший - "NA"):
tx.croiss = (20,5 - 20)/20 враховуючи, що це через 10 хв (з 8:00:00 до 8:10:00).

Це вам зрозуміло?

Ще раз дякую, я залишатимусь на своєму комп’ютері зараз і дивитимусь на ваші відповіді з вами.

PS: Чарльз, я ще не пробував цикл for. мій масив має 600 000 рядків, і я боюся, що використання циклу for може бути не дуже оптимальним. як ти гадаєш?:)

Re: Обчислити швидкість росту та зменшити центр

Повідомлення від Чарльз Маркуччі »26 липня 2017, 11:49

Ось мій код, модифікований для різниці у вазі в кг на хвилину.

Для циклу for me я використовую це для масиву з 150 000 рядків, і це працює.
Але рішення моїх колег набагато гарніші та менш ресурсомісткі, ніж мої.

якщо не використовувати розчин П’єра-Іва Беррара

tab%
group_by (ім'я)%>%
мутувати (
weight_tx.crois = (вага/відставання (вага) - 1) /as.numeric (час розбіжності (date.hour, lag (date.hour) -1, одиниці = "хвилини")),
вага_CR = шкала (вага)
)

Re: Обчислити швидкість росту та зменшити центр

Повідомлення від Коралі Деніот »26 липня 2017, 12:22

Велике спасибі тобі, дякую Чарльзу за цей відгук:)

Сподіваюся, все-таки працюватиму з вами!

Re: Обчислити швидкість росту та зменшити центр

Повідомлення від Чарльз Маркуччі »26 липня 2017, 12:32

Ми повинні особливо подякувати П'єру-Іву Беррарду та Сержу Рапенну, які добре володіють пакетом dplyr, уникаючи таким чином близько 10 рядків коду.

Re: Обчисліть темп зростання та зменшіть центр

Повідомлення від Серж Рапенн »26 липня 2017, 12:36

Лише трохи додаткової примітки, щоб додати певний захист коду.

Наш код буде правильним, лише якщо ідентифікатори та дати добре впорядковані. Щоб це забезпечити, просто змініть код наступним чином.