Каков правильный способ изменения списка? В данном конкретном случае список возвращается на split
Как использовать mutate в списке?
library(dplyr)
csv<-data.frame(participant_number=c(1,1,1,2,2),SelfEsteem=c(3,4,2,1,3))
csv<-csv%>%split(.,.$participant_number)%>%mutate(.,var(.$SelfEsteem))
Ошибка:
Error in UseMethod("mutate_") :
no applicable method for 'mutate_' applied to an object of class "list"
UPDATE В ответ на комментарии: Я намерен вычислить дисперсию SelfEsteem
каждой группы (группировка ВДП participant_number
). Если я попробую group_by
, я не получу ожидаемого результата .... Почему?
library(dplyr)
#Please note I changed the dataframe to make my point about variance differences more obvious
csv<-data.frame(participant_number=c(1,1,1,2,2),SelfEsteem=c(3,4,2,1,3))
csv<-csv%>%group_by(participant_number)%>%mutate(.,SE_variance=var(.$SelfEsteem))
#var(c(3,4,2)) #1
#var(c(1,3)) #2
Ожидаемое:
participant_number SelfEsteem SE_variance
(dbl) (dbl) (dbl)
1 1 3 1
2 1 4 1
3 1 2 1
4 2 1 2
5 2 3 2
'd' в' dplyr' предназначен для фреймов данных. Если вы хотите мутировать каждый фрейм данных в списке, вы делаете то же самое, что и все остальные кадры данных в списке 'lapply', for loop или' purrr'. – Gregor
Хотя из вашего примера, почему вы пытаетесь «разбить»? Просто 'group_by' и сохраните его как один фрейм данных. – Gregor
Вы намерены применять различные мутации для каждого списка? – zx8754