【发布时间】:2016-11-18 23:51:15
【问题描述】:
以下数据集是可重现的
group <- c(1,1,2,2,3,3)
parameter <- c("A","B","A","B","A","B")
values <- c(10,20,20,5,30,50)
df <- data.frame(group,parameter,values)
group parameter values
1 A 10
1 B 20
2 A 20
2 B 5
3 A 30
3 B 50
我想在每个组中检查 A > B(将此结果存储在整个组的第四列中)
如果是 -> 真,如果不是 -> 假
新的 Df:
group parameter values status
1 A 10 FALSE
1 B 20 FALSE
2 A 20 TRUE
2 B 5 TRUE
3 A 30 FALSE
3 B 50 FALSE
方法
with(df, ave(values,group, FUN = function(x) ))
我无法想象函数内部的代码是什么。有人可以帮我吗
更新:状态应按照每组的值列(从最高到最低)进行排名
group parameter values status
1 A 10 2
1 B 20 1
2 A 20 1
2 B 5 2
3 A 30 2
3 B 50 1
【问题讨论】:
-
每组中是否总是恰好有 1 个 A 和 1 B 值?
-
是的,每组中正好有 1 个 A 和 1 B 值
标签: r