Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/r/71.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
R中简单数据帧到复杂列表的转换_R - Fatal编程技术网

R中简单数据帧到复杂列表的转换

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

需要创建一个选项组,供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))
是否有更好的方法执行此操作

您可以尝试拆分

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

#$Western
# California Washington 
#     "CA"       "WA"