У меня есть два вектора, и я хочу создать список в R, где один вектор - это ключи, а другие значения. Я думал, что я легко найду ответ в своих книгах или googleing, и я ожидал найти решение, например, при добавлении имен в вектор (имена (v) < - names_vector), но я потерпел неудачу.
Я пришел с двумя возможными решениями, но ни один из них не кажется мне элегантным. R не является моим основным языком программирования, но я предполагаю, что, будучи таким прагматичным, должно существовать лучшее решение (например, list (keys = x, values = y)).
Мое решение 1: классическое решение цикла:
> xx <- 1:3
> yy <- letters1:3
> zz =list()
>for(i in 1:length(yy)) {zz[[yy[i]]]<-xx[i]}
мое решение 2: косвенный путь через именованные векторы:
> names(xx) <- letters[1:3]
> as.list(xx)
Кажется, что у меня есть решение, но у моих векторов есть 1 миллион или более элементов, и меня беспокоит не только стиль кодирования (важный для меня), но и эффективность (но я не знаю, как сделать профилирование в R). Есть ли более подходящий способ сделать это? Является ли хорошей практикой использование названного векторного ярлыка?
[[UPDATE]] мои слова, вероятно, я упрощаю вопрос, чтобы сделать его воспроизводимым. Я хотел дать имена элементам списка. Сначала я попробовал имена(), но, похоже, что я сделал что-то неправильно и не работал. Поэтому я понял, что имена() не работают со списками. Но они действительно делают, как показано принятым ответом