Получить имя списка в виде столбца в кадре данных - PullRequest
0 голосов
/ 29 апреля 2018

У меня проблемы с извлечением имени списка в кадре данных.

Мой вложенный список выглядит следующим образом:

library(tidyverse)
library(dplyr)
library(purrr)

category <- list(fruits<-c("apples","orange", "pear","banana","strawberries"),
vegetables<-c("cauliflower","potato","onion","tomato"),
dairy<-c("goats milk", "cows milk"))

Мой фрейм данных:

column1<-c("apples","potato","onion","goats milk")
df<-as.data.frame(column1)


final<-df%>%mutate(listname=column1%in%category)

Я получаю следующий результат:

      column1 listname

1     apples    FALSE
2     potato    FALSE
3      onion    FALSE
4 goats milk    FALSE 

Что я хочу иметь:

      column1 listname

1     apples    fruit
2     potato    vegetable
3      onion    vegetable
4 goats milk    dairy

По-настоящему ценю вашу помощь.

Спасибо

1 Ответ

0 голосов
/ 29 апреля 2018
merge(df,stack(category),by.x = "column1",by.y= "values")
     column1        ind
1     apples     fruits
2 goats milk      dairy
3      onion vegetables
4     potato vegetables

Но сначала убедитесь, что у вас есть категории, как показано ниже:

category <- list(fruits=c("apples","orange", "pear","banana","strawberries"),
vegetables=c("cauliflower","potato","onion","tomato"),
dairy=c("goats milk", "cows milk"))

Вы также можете использовать:

library(dplyr) 
left_join(df,stack(category),c("column1"="values"))
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...