【发布时间】:2016-05-07 09:51:47
【问题描述】:
假设数据:
hypo <- data.frame('X1' = c('a','b','a','b','a','b','a','b'),
'X2' = c('x','x','y','y','x','x','y','y'),
'X3' = c('m','m','m','m','n','n','n','n'),
'X4' = c(1,6,4,9,10,7,8,3))
输出:
X1 X2 X3 X4
1 a x m 1
2 b x m 6
3 a y m 4
4 b y m 9
5 a x n 10
6 b x n 7
7 a y n 8
8 b y n 3
当 X1 和 X2 值相同而 X3 不同时,您想找出 X4 值之间的差异。例如,我们可以使用 subset() 对单个值执行此操作:
value <- (subset(hypo, X1 == 'a' & X2 == 'x' & X3 == 'm')$X4
- subset(hypo, X1 == 'a' & X2 == 'x' & X3 == 'n')$X4)
# -9
我们如何做到这一点,以便为 X1 和 X2 相同而 X3 不同的所有实例计算 X4 值之间的差异?
理想输出:
X1 X2 m-n
1 a x -9
2 b x -1
3 a y -4
4 b y 6
任何帮助将不胜感激。
【问题讨论】:
标签: r indexing dataframe computation