R - добавление значений для одного столбца на основе функции с использованием другого столбца - PullRequest
1 голос
/ 10 марта 2020

У меня есть набор данных, который выглядит следующим образом:

head (набор данных)

Distance   Lag time  Kurtosis
7.406100   10
144.1700   1
77.31800   1
81.15400   1
4.249167   6

Я хочу добавить значения к куртозу колонка. Чтобы вычислить эксцесс, мне нужно сгруппировать расстояния по времени запаздывания (т. Е. Все расстояния для времени запаздывания 1 дадут мне одно значение для куртоза и др. c.). Чтобы получить эксцесс, я обычно использую пакет «psych» и функцию description (). Можно ли добавить l oop, чтобы сделать это?

Ответы [ 2 ]

0 голосов
/ 10 марта 2020

Поскольку describe создает выходной кадр данных, и вам нужен только один столбец (также называемый kurtosis), вам нужно поднастроить вывод describe

library(dplyr)
library(psych)

df %>% 
  group_by(Lag_Time) %>% 
  mutate(Kurtosis = describe(Distance)[1,"kurtosis"])

  Distance Lag_Time Kurtosis
     <dbl>    <dbl>    <dbl>
1     7.41       10    NA   
2   144.          1    -2.33
3    77.3         1    -2.33
4    81.2         1    -2.33
5     4.25        6    NA   
0 голосов
/ 10 марта 2020

Вы должны быть в состоянии сделать это, используя dplyr

library(dplyr)
library(magrittr)
dataset <- dataset %>%
           dplyr::group_by('Lag time') %>%
           dplyr::mutate(Kurtosis = describe(Distance)$kurtosis)
...