У меня есть эти данные с 20848 записями:
V1 V2 V3 V4 V5 V6 V7 V8 V9 V10 V11 V12
1 0.023255814 0.1000000000 0.046511628 0.004651163 0.030232558 0.000000000 0.369767442 0.020930233 0.000000000 0.000000000 0.025581395 0.379069767
2 0.063750000 0.0112500000 0.001250000 0.105000000 0.120000000 0.522500000 0.005000000 0.000000000 0.005000000 0.002500000 0.163750000 0.000000000
3 0.026605505 0.3844036697 0.192660550 0.017431193 0.000000000 0.004587156 0.013761468 0.028440367 0.163302752 0.097247706 0.014678899 0.056880734
...
Я использую библиотеку 'tidyr' в R, чтобы получить первые 3 числа V # из каждой строки, как это:
gather(as.data.frame(matrix), key = "Name", value = "Prob",factor_key = TRUE) %>%
group_by(Name) %>%
top_n(n = 3)
Получение этого результата:
Name Prob
<fct> <dbl>
1 V1 0.717
2 V1 0.682
3 V1 0.686
4 V2 0.756
5 V2 0.767
6 V2 0.817
7 V3 0.806
8 V3 0.871
9 V3 0.801
10 V4 0.779
# ... with 26 more rows
Но мне нужно сохранить номер строки в качестве идентификатора, чтобы соответствовать другой информации из другого набора данных, который следует той же структуре. Я имею в виду, что я хочу получить такой результат:
Name Prob row
<fct> <dbl>
1 V1 0.717 4151
2 V1 0.682 17
3 V1 0.686 3215
4 V2 0.756 17565
5 V2 0.767 13254
6 V2 0.817 3
7 V3 0.806 2135
8 V3 0.871 298
9 V3 0.801 4568
10 V4 0.779 542
# ... with 26 more rows
Я знаю, что он может быть немного базовым, но кто-то может помочь?