Я пытаюсь вернуть n-ую строку для каждого идентификатора в определенном столбце с помощью суммирования с помощью ddply.В приведенном ниже примере, скажем, 2-я ячейка для каждого идентификатора в столбце b.
id <- c(1, 1, 2, 2, 3, 3, 4, 4, 5, 5)
b <- c(9, 9, 9, 7, 5, 4, NA, NA, 3, 2)
c <- c(2, 3, 6, 7, 4, 5, 3, NA, 4, 7)
df <- data.frame(id,b,c)
df
a b c
1 1 9 2
2 1 9 3
3 2 9 6
4 2 7 7
5 3 5 4
6 3 4 5
7 4 NA 3
8 4 NA NA
9 5 3 4
10 5 2 7
Я пробовал следующее:
df_2 <- ddply(df, ~a, summarise,
b_mean_per_id = mean(b, na.rm = TRUE),
second_b = nth(df$b, 2))
, который возвращает только вторую ячейку в b (недля каждого идентификатора)
a b_mean_per_id second_b
1 1 9.0 9
2 2 8.0 9
3 3 4.5 9
4 4 NaN 9
5 5 2.5 9
Но то, что я хочу:
a b_mean_per_id second_b
1 1 9.0 9
2 2 8.0 7
3 3 4.5 4
4 4 NaN NA
5 5 2.5 2
Любой намек высоко ценится:)