【问题标题】:Obtain the name of a list as column in dataframe获取列表的名称作为数据框中的列
【发布时间】:2018-04-29 06:35:54
【问题描述】:

我无法提取数据框中的列表名称。

我的嵌套列表如下:

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

非常感谢您的帮助。

谢谢

【问题讨论】:

    标签: r dplyr tidyverse purrr


    【解决方案1】:
    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"))
    

    【讨论】:

      猜你喜欢
      • 2019-08-11
      • 2020-04-11
      • 1970-01-01
      • 1970-01-01
      • 2021-09-14
      • 2022-01-26
      • 1970-01-01
      • 1970-01-01
      • 2016-05-27
      相关资源
      最近更新 更多