【问题标题】:simple dataframe to a complex list conversion in R [duplicate]R中的简单数据框到复杂列表的转换[重复]
【发布时间】:2015-07-22 06:06:06
【问题描述】:

需要创建一个选项组以供 Shiny 中的 selectizeInput 小部件使用。

开始样本数据帧

df <- data.frame("Region" = c("Eastern", "Eastern", "Western", "Western"), 
              "City" = c("New york", "New Jersey", "California", "Washington"),
              "Abb" = c("NY", "NJ", "CA", "WA"))

通缉名单

 l <- list(Eastern = c(`New York` = 'NY', `New Jersey` = 'NJ'),
     Western = c(`California` = 'CA', `Washington` = 'WA'))

手动解决方法是

Eastern <- df[which(df$Region == "Eastern"),]
Western <- df[which(df$Region == "Western"),]
list(Eastern = setNames(Eastern$Abb, Eastern$City), Western = setNames(Western$Abb, Western$City))

有没有更好的方法来做到这一点

【问题讨论】:

    标签: r


    【解决方案1】:

    你可以试试split

    with(df, split(setNames(as.character(Abb), City), Region))
    #$Eastern
    #  New york New Jersey 
    #     "NY"       "NJ" 
    
    #$Western
    # California Washington 
    #     "CA"       "WA" 
    

    【讨论】:

      猜你喜欢
      • 2016-07-24
      • 2014-02-17
      • 1970-01-01
      • 2013-07-26
      • 1970-01-01
      • 1970-01-01
      • 2016-02-03
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多