Один из моих предыдущих вопросов был очень похож на этот.
Давайте создадим этот случайный набор данных -
df<- data.frame(ani_id = as.factor(1:10), x_data = rnorm(500), y_data=rnorm(500))
> head(df)
ani_id x_data y_data
1 1 -0.8832187 0.5080067
2 2 -0.2823767 -0.4060133
3 3 -1.5890646 -1.3499005
4 4 1.8312746 1.0803899
5 5 1.5814911 0.1227741
6 6 1.6500048 -0.2849130
У меня есть уникальный идентификатор от 1 до 10. и еще 2 столбцы с данными по осям x и y.
Мне нужно 5 случайных точек для каждого идентификатора.
То, что я пробовал, -
df_sub<- do.call(rbind, by(df, df$ani_id, head, 5))
Это даст мне первые 5 баллов за ID не случайны. Я знаю, что могу использовать выборку, но когда я использую выборку, я получаю 5 случайных точек от df, а не 5 случайных точек за ID.
Я знаю, что это очень основа c, но я действительно не мог получить вокруг этого пока нет.
Любая помощь очень ценится. :)