Вычислить коэффициент для всех подмножеств кадра данных - PullRequest
0 голосов
/ 23 мая 2018

Я хочу рассчитать коэффициент корреляции веса и времени для каждого человека в кадре данных отдельно.Фрейм данных состоит из около 40 человек, с 10 или менее наблюдениями на человека.Я был в состоянии рассчитать коэффициент для отдельных лиц отдельно, но не получить R, чтобы сделать это для лота за один раз.

Мои данные выглядят примерно так:

id <- c(rep(1, times = 10), rep(3, times = 10), rep(4, times = 10))
time <- c(1,2,3,4,5,6,7,8,9,10)
weight <- runif(30, min = 50, max = 100)
dataframe <- data.frame(id, time, weight)

Iуспешно вычислил коэффициент для отдельных лиц, используя эту функцию:

coef(lm(weight~time, data = dataframe))[2]

Я пробовал for-loops, aggregate и apply, но не могу понять, как рассчитать коэффициент для всехлюди за один раз сохраняют результаты в виде вектора.

1 Ответ

0 голосов
/ 23 мая 2018

split по id, затем переберите и получите coef :

sapply(split(dataframe, dataframe$id), function(i) coef(lm(weight ~ time, data = i))[2])
#     1.time      3.time      4.time 
# 1.48800159 -0.05921987 -2.57523482
...