R语言中如何找出提供菜系最多的餐厅?需获取餐厅与菜系名
解决方案
首先需要将你的非结构化数据转换为R可处理的结构化格式,再通过tidyverse工具完成统计和关联:
步骤1:构建结构化数据集
先把你给出的餐厅和对应菜系映射成数据框:
library(tidyverse) # 原始数据映射 rest_data <- tibble( 餐厅 = c("A", "B", "C"), 菜系 = c( "Indian、American、Japanese、Korean、Chinese", "Meditterranean、Continental、Indonesian", "Malaysian、Mexican、Brazillian、Vietnamese" ) )
步骤2:拆分菜系并统计数量
使用separate_rows()拆分每个餐厅的菜系为单独行,再用count()统计每家的菜系数量,同时保留完整的餐厅-菜系对应关系:
# 拆分菜系为每行一个条目(获取所有餐厅-菜系对应表) rest_cuisine <- rest_data %>% separate_rows(菜系, sep = "、") # 统计每家餐厅的菜系数量,按数量降序排序 cuisine_count <- rest_cuisine %>% count(餐厅, name = "菜系数量", sort = TRUE) # 查看结果 print(rest_cuisine) # 完整的餐厅-菜系对应关系 print(cuisine_count) # 各餐厅的菜系数量统计
步骤3:定位菜系最多的餐厅
如果需要直接筛选出菜系数量最多的餐厅:
max_cuisine_rest <- cuisine_count %>% filter(菜系数量 == max(菜系数量)) print(max_cuisine_rest)
关于你之前的count()失效问题
你之前直接用count()应该是对原始的菜系字符串列统计,此时统计的是餐厅的行数(每家1行),而非实际的菜系数量。必须先将每个菜系拆分为单独行,再统计才能得到正确结果。
内容的提问来源于stack exchange,提问作者Adrija Chakraborty
相关产品推荐
相关产品推荐

