R中简单数据帧到复杂列表的转换
需要创建一个选项组,供Shiny中的selectizeInput小部件使用 开始样本数据帧R中简单数据帧到复杂列表的转换,r,R,需要创建一个选项组,供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
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))
是否有更好的方法执行此操作您可以尝试拆分
with(df, split(setNames(as.character(Abb), City), Region))
#$Eastern
# New york New Jersey
# "NY" "NJ"
#$Western
# California Washington
# "CA" "WA"