Можно ли прокрутить конкретное наблюдение с помощью функции, а затем сохранить вывод? Я написал функцию, которая требует две переменные: 1) набор данных для вычислений; 2) номер субъекта.
Например, фрейм данных здесь содержит данные для двух субъектов. Я хочу перебрать фрейм данных, чтобы вычислить среднее значение для каждого субъекта и получить результат для каждого субъекта.
df1<-data.frame(data= c(2,3,4,5), subject= c("S2","S1","S2","S1"))
for (i in df1) {
if df1$subject== i
subset_(i)<-mean(data)
}
Может ли кто-нибудь помочь мне улучшить коды, пожалуйста?
Большое спасибо за вашу помощь заранее!
Используйте функции dplyr
:
library(dplyr)
df1 %>%
group_by(subject) %>%
summarise(mean = mean(data, na.rm = T))
Мы можем использовать aggregate
из base R
aggregate(data~ subject, df1, mean)
# subject data
#1 S1 4
#2 S2 3