Я пытаюсь изменить порядок набора данных (данные финансовой валюты) по определенным критериям. В каждом столбце есть код, указывающий тип данных, с которыми мы имеем дело.
По сути, я хочу изменить порядок столбцов, которые я разбил, чтобы все данные одной валюты были сгруппированы вместе. Эта информация хранится в 10-м элементе каждой строки этого набора данных (т. Е. reord[[1]][10] == "USD")
. Поэтому мне нужно создать индекс для изменения порядка этих данных.
Это часть исходного столбца, которая относится к типу данных, которые я разделил:
reord = list(c("H", "A", "A", "B", "5J", "A", "5J", "A", "TO1", "USD",
"A", "A", "3", "C"), c("H", "D", "R", "B", "5J", "C", "5J", "A",
"TO1", "CAD", "A", "A", "3", "C"), c("H", "A", "I", "B", "5J",
"A", "5J", "A", "TO1", "JPY", "A", "A", "3", "C"), c("H", "A",
"R", "B", "5J", "C", "5J", "A", "TO1", "$TO1+TO1-USD-EUR-JPY-GBP-CHF-CAD-SEK",
"A", "A", "3", "C"), c("H", "D", "I", "B", "5J", "U", "5J", "A",
"TO1", "JPY", "A", "A", "3", "C"), c("H", "A", "D", "B", "5J",
"C", "5J", "A", "TO1", "EUR", "A", "A", "3", "C"), c("H", "D",
"R", "B", "5J", "A", "5J", "A", "TO1", "SEK", "A", "A", "3",
"C"), c("H", "Q", "C", "B", "5J", "B", "5J", "A", "TO1", "USD",
"A", "A", "3", "A"), c("H", "D", "S", "B", "5J", "U", "5J", "A",
"TO1", "JPY", "A", "A", "3", "A"), c("H", "A", "R", "B", "5J",
"U", "5J", "A", "TO1", "SEK", "A", "A", "3", "C"), c("H", "A",
"R", "B", "5J", "B", "5J", "A", "TO1", "$TO1+TO1-USD-EUR-JPY-GBP-CHF-CAD-SEK",
"A", "A", "3", "C"), c("H", "A", "S", "B", "5J", "B", "5J", "A",
"TO1", "JPY", "A", "A", "3", "A"), c("H", "D", "D", "B", "5J",
"U", "5J", "A", "TO1", "JPY", "A", "A", "3", "C"), c("H", "D",
"S", "B", "5J", "A", "5J", "A", "TO1", "$TO1+TO1-USD-EUR-JPY-GBP-CHF-CAD-SEK",
"A", "A", "3", "A"), c("H", "D", "S", "B", "5J", "A", "5J", "A",
"TO1", "GBP", "A", "A", "3", "A"), c("H", "D", "I", "B", "5J",
"K", "5J", "A", "TO1", "CAD", "A", "A", "3", "C"), c("H", "D",
"R", "B", "5J", "K", "5J", "A", "TO1", "CHF", "A", "A", "3",
"C"), c("H", "A", "T", "B", "5J", "K", "5J", "A", "TO1", "JPY",
"A", "A", "3", "A"), c("H", "D", "T", "B", "5J", "U", "5J", "A",
"TO1", "CAD", "A", "A", "3", "A"), c("H", "Q", "C", "B", "5J",
"A", "5J", "A", "TO1", "USD", "A", "A", "3", "A"), c("H", "A",
"D", "B", "5J", "B", "5J", "A", "TO1", "EUR", "A", "A", "3",
"C"), c("H", "A", "S", "B", "5J", "C", "5J", "A", "TO1", "EUR",
"A", "A", "3", "A"), c("H", "D", "D", "B", "5J", "K", "5J", "A",
"TO1", "CAD", "A", "A", "3", "C"), c("H", "D", "R", "B", "5J",
"B", "5J", "A", "TO1", "SEK", "A", "A", "3", "C"), c("H", "D",
"R", "B", "5J", "K", "5J", "A", "TO1", "TO1", "A", "A", "3",
"C"), c("H", "D", "S", "B", "5J", "B", "5J", "A", "TO1", "$TO1+TO1-USD-EUR-JPY-GBP-CHF-CAD-SEK",
"A", "A", "3", "A"), c("H", "D", "S", "B", "5J", "C", "5J", "A",
"TO1", "$TO1+TO1-USD-EUR-JPY-GBP-CHF-CAD-SEK", "A", "A", "3",
"A"), c("H", "D", "I", "B", "5J", "A", "5J", "A", "TO1", "GBP",
"A", "A", "3", "C"), c("H", "A", "D", "B", "5J", "A", "5J", "A",
"TO1", "JPY", "A", "A", "3", "C"), c("H", "A", "D", "B", "5J",
"K", "5J", "A", "TO1", "$TO1+TO1-USD-EUR-JPY-GBP-CHF-CAD-SEK",
"A", "A", "3", "C"))
Я получил желаемый вывод, но наивно:
##Want to find the index of all the USD elements in the 10th position in everyrow
idxUSA = NULL
idxEUR = NULL
idxCHF = NULL
idxJPY = NULL
idxSEK = NULL
idxGBP = NULL
idxCAD = NULL
idxTO1 = NULL
idxOTHER = NULL
for(i in 1:length(reord)) {
if(reord[[i]][10] == "USD") {
print(reord[[i]][10])
idxUSA = c(idxUSA,i)
}
if(reord[[i]][10] == "EUR") {
print(reord[[i]][10])
idxEUR = c(idxEUR,i)
}
if(reord[[i]][10] == "JPY") {
print(reord[[i]][10])
idxJPY = c(idxJPY,i)
}
if(reord[[i]][10] == "TO1") {
print(reord[[i]][10])
idxTO1 = c(idxTO1,i)
}
if(reord[[i]][10] == "SEK") {
print(reord[[i]][10])
idxSEK = c(idxSEK,i)
}
if(reord[[i]][10] == "CHF") {
print(reord[[i]][10])
idxCHF = c(idxCHF,i)
}
if(reord[[i]][10] == "GBP") {
print(reord[[i]][10])
idxGBP = c(idxGBP,i)
}
if(reord[[i]][10] == "CAD") {
print(reord[[i]][10])
idxCAD = c(idxCAD,i)
}
if(reord[[i]][10] == "$TO1+TO1-USD-EUR-JPY-GBP-CHF-CAD-SEK") {
print(reord[[i]][10])
idxOTHER = c(idxOTHER,i)
}
}
Как я могу оптимизировать этот процесс? Спасибо.