在R中如何按国家和年份分组取最大值并修正统计错误
问题原因
你的代码错误点在于summarise计算时使用了dataset$Trial,该写法会直接读取整个原始数据集的Trial列,计算全局最大值,不会遵循group_by的分组规则,因此所有分组的返回结果都是整个数据集的Trial最大值1。
修正方案
去掉列名前的数据集前缀dataset$,dplyr会自动取当前分组内的Trial列做计算,修正后的代码如下:
dataset %>% group_by(country, Year) %>% summarise( presenceofTrial = max(Trial), .groups = "drop" )
其中.groups = "drop"为可选参数,作用是聚合完成后自动解除分组,避免后续操作受残留分组影响。执行上述代码即可得到你预期的输出结果。
内容的提问来源于stack exchange,提问作者Varun Vaddineni
相关产品推荐
相关产品推荐

