#arrays #julia
#массивы #julia
Вопрос:
У меня есть два массива в Julia, массив 1 (45807×2) имеет два столбца, первый столбец предназначен для позиции snp, а второй столбец — для snpID, теперь я хочу получить SNPID, который имеет позицию в массиве2 (4580×1) из массива 1. например, первый элемент (5) в массиве1 — пятый snpID (BTA-34880) в массиве 1. как я могу это сделать? Спасибо.
45807×2 Array{Any,2}:
1 "BovineHD0100000015"
2 "Hapmap43437-BTA-101873"
3 "BovineHD0100000062"
4 "ARS-BFGL-NGS-16466"
5 "BTA-34880"
6 "BovineHD0100000096"
7 "Hapmap34944-BES1_Contig627_1906"
8 "ARS-BFGL-NGS-98142"
9 "rs29015850"
10 "ARS-BFGL-NGS-114208"
11 "ARS-BFGL-NGS-66449"
12 "BovineHD0100000204"
13 "BovineHD0100000220"
⋮
4580-element Array{Int64,1}:
5
6
18
25
26
54
55
67
69
84
88
Ответ №1:
Вы можете напрямую использовать второй массив в качестве индекса для первого массива. Посмотрите на этот пример:
julia> using Random
julia> a = hcat(1:10, shuffle(1:10))
10×2 Array{Int64,2}:
1 7
2 6
3 10
4 1
5 9
6 8
7 4
8 5
9 3
10 2
julia> b = shuffle(1:5)
5-element Array{Int64,1}:
2
5
3
4
1
julia> a[b,2]
5-element Array{Int64,1}:
6
9
10
1
7
Комментарии:
1. это решило мою проблему, спасибо за помощь 🙂