以R为单位按数量级聚合数据

以R为单位按数量级聚合数据,r,aggregate,R,Aggregate,假设此数据集: df = data.frame(city=c(A,A,A,B,B,C,C,C,C), party=c(D,R,I,D,R,D,R,I,U), votes=c(10,2,9,7,2,1,7,3,8)) 我想计算每个城市投票最多和第二多的政党之间的选票差距。但每个城市都有两个以上的政党。我想要的结果是: city vote.diff A 1 B 5 C 1 有什么帮助吗?用于测试的数据帧。仿照上面的psuedo代码: df = data.

假设此数据集:

df = data.frame(city=c(A,A,A,B,B,C,C,C,C), party=c(D,R,I,D,R,D,R,I,U), votes=c(10,2,9,7,2,1,7,3,8))
我想计算每个城市投票最多和第二多的政党之间的选票差距。但每个城市都有两个以上的政党。我想要的结果是:

city vote.diff
 A       1
 B       5
 C       1

有什么帮助吗?

用于测试的数据帧。仿照上面的psuedo代码:

df = data.frame(city=c('A','A','A','B','B','C','C','C','C'), 
                party=c('D','R','I','D','R','D','R','I','U'), 
                votes=c(10,2,9,7,2,1,7,3,8))
守则:

resV <- lapply(split(df, df$city), function(df.x){
                      res <- xtabs(votes~party, data=df.x); 
                     -diff( res[ order(res,decreasing=TRUE) ][1:2]) } )
data.frame(city=names(resV), 
           vote.diff=unlist(resV), 
            winner=names(unlist(resV)) )

    city vote.diff winner
A.I    A         1    A.I
B.R    B         5    B.R
C.R    C         1    C.R

resV用于测试的数据帧。仿照上面的psuedo代码:

df = data.frame(city=c('A','A','A','B','B','C','C','C','C'), 
                party=c('D','R','I','D','R','D','R','I','U'), 
                votes=c(10,2,9,7,2,1,7,3,8))
守则:

resV <- lapply(split(df, df$city), function(df.x){
                      res <- xtabs(votes~party, data=df.x); 
                     -diff( res[ order(res,decreasing=TRUE) ][1:2]) } )
data.frame(city=names(resV), 
           vote.diff=unlist(resV), 
            winner=names(unlist(resV)) )

    city vote.diff winner
A.I    A         1    A.I
B.R    B         5    B.R
C.R    C         1    C.R

resV用于测试的数据帧。仿照上面的psuedo代码:

df = data.frame(city=c('A','A','A','B','B','C','C','C','C'), 
                party=c('D','R','I','D','R','D','R','I','U'), 
                votes=c(10,2,9,7,2,1,7,3,8))
守则:

resV <- lapply(split(df, df$city), function(df.x){
                      res <- xtabs(votes~party, data=df.x); 
                     -diff( res[ order(res,decreasing=TRUE) ][1:2]) } )
data.frame(city=names(resV), 
           vote.diff=unlist(resV), 
            winner=names(unlist(resV)) )

    city vote.diff winner
A.I    A         1    A.I
B.R    B         5    B.R
C.R    C         1    C.R

resV用于测试的数据帧。仿照上面的psuedo代码:

df = data.frame(city=c('A','A','A','B','B','C','C','C','C'), 
                party=c('D','R','I','D','R','D','R','I','U'), 
                votes=c(10,2,9,7,2,1,7,3,8))
守则:

resV <- lapply(split(df, df$city), function(df.x){
                      res <- xtabs(votes~party, data=df.x); 
                     -diff( res[ order(res,decreasing=TRUE) ][1:2]) } )
data.frame(city=names(resV), 
           vote.diff=unlist(resV), 
            winner=names(unlist(resV)) )

    city vote.diff winner
A.I    A         1    A.I
B.R    B         5    B.R
C.R    C         1    C.R

resV我恐怕你还不明白“a”和“a”之间有着巨大的区别。。。字母-A和
A
对象的标记/名称,R评估系统将为其寻找一个n=可能是或可能不是“A”的值。我不认为这是正确的术语:我担心您还不了解“A”之间有巨大的差异。。。字母-A和
A
对象的标记/名称,R评估系统将为其寻找一个n=可能是或可能不是“A”的值。我不认为这是正确的术语:我担心您还不了解“A”之间有巨大的差异。。。字母-A和
A
对象的标记/名称,R评估系统将为其寻找一个n=可能是或可能不是“A”的值。我不认为这是正确的术语:我担心您还不了解“A”之间有巨大的差异。。。字母-A和
A
对象的标记/名称,R评估系统将为其查找n=可能是或可能不是“A”的值。我认为这不是正确的术语: