Превращение кадра данных в именованный список - PullRequest
0 голосов
/ 14 января 2019

У меня есть фрейм данных цветов и идентификаторов, и я хочу превратить их в список с цветами в качестве name и идентификатором в качестве value

colors <- data.frame(color = c('Gold', 'Green', 'Red'), id = c('1','2','3'))

это небольшая выборка фрейма данных, так как строк намного больше.

Я пытаюсь получить результаты, эквивалентные выводу, когда вы пишете:

colorlist <- list('Gold' = 1, 'Green' = 2, 'Red' = 3)

Ответы [ 4 ]

0 голосов
/ 14 января 2019

Попробуй это. Очень похоже на решение MKBakker. Я добавил as.integer(), поэтому результат, как вы описали:

colorlist <- as.list(as.integer(colors$id))
names(colorlist) <- colors$color
0 голосов
/ 14 января 2019
setNames(as.list(as.character(colors$id)), nm = colors$color)
$Gold
[1] "1"

$Green
[1] "2"

$Red
[1] "3"
0 голосов
/ 14 января 2019

с разделением:

colorlist = split(x=colors$id, f=colors$color)

Если уровни являются проблемой, просто превратите идентификатор в символ:

colorlist = split(x=as.character(colors$id), f=colors$color)
0 голосов
/ 14 января 2019

Попробуйте:

colors <- data.frame(color = c('Red', 'Green', 'Gold'), id = c('1','2','3'))

colors_list <- as.list(as.character(colors$id))
names(colors_list) <- colors$color

colors_list
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...