【发布时间】:2019-09-14 04:51:13
【问题描述】:
您好,我遇到了一个奇怪的问题。
我有一个如下数据集:
City =c('XX','YY','XX','XX','YY')
Grade = c('A','B','A','A','B')
Variable1=c(.34,0,.34,0,0)
Variable2=c(.76,.3,0,.76,.3)
Variable3=c(.76,.3,0,.76,0)
Final_data = data.frame(City,Grade,Variable1,Variable2,Variable3)
Final_data <- Final_data[order(City),]
排序后是这样的:
如您所见,第 1,2 行和第 3 行代表同一个城市 (XX),其成绩为 A。问题是在某些列有 0 的行中存在重复。理想情况下,我只会有城市 XX 的第 1 行和城市 YY 的第 1 行。 具体来说,在这种情况下,我想要的是,对于每个城市和年级,计算每行中零的数量,然后取零数量最少的行。
一种方法可能是:https://stackoverflow.com/a/47914087/3988575。但是,上面删除了所有为零的行。如果您查看带有 YY 城市和 B 级 的第 4 行和第 5 行,这两行都有一些带有 0 的列。类似地,
另一种方法是使用如下所示的独特功能:https://stackoverflow.com/a/31875208/3988575。在这种情况下,将选择满足条件的第一行。这对我也没有帮助。
预期的输出是这样的:
我怎么能做到这一点?任何帮助表示赞赏。
【问题讨论】:
标签: r data-manipulation