我有一个示例数据集,如下所示:
df=data.frame(iter=c(1, 1, 2, 2), exp=c("A", "B", "A", "B"),
val=c(2.3, 3.6, 4.0, 5.0))表格形式如下:
iter exp val
1 A 2.3
1 B 3.6
2 A 4.0
2 B 5.0我试图以一种方式将其转换为组A和B,添加一个值为df$val[1]/df$val[2]、df$val[3]/df$val[4]等值的比率列,因此最终结果如下:
iter ratio
1 2.3/3.6
2 4.0/5.0我觉得这应该是一项蹒跚学步的工作,但我找不到一条路来完成它。任何帮助都是非常感谢的。
发布于 2014-03-12 04:27:16
library(data.table)
DT <- as.data.table(df)
DT[, list(ratio= val[exp=="A"] / val[exp=="B"]), by=iter]
iter ratio
1: 1 0.638889
2: 2 0.800000https://stackoverflow.com/questions/22341607
复制相似问题