我有一个带有x值的data.frame,我想根据两个因素来计算:第一个是x的值,第二个是依赖于一个因子。这是一个样本
set.seed(111)
A<-data.frame(x=rnorm(n = 100,mean = 5,sd=1))
A$LETTER<-sample(LETTERS[1:2],100,replace=T)
A$int<-cut(A$x,breaks=c(0,3,6,9))
我需要一定时间间隔内的x频率值,但需要额外的条件。
计数字母= A(0,3)x值和字母= B(6,9)值
将两个字母(3,6)统计为一个
计算第一个条件的反向
输出可以是新的data.frame
要说清楚
table(A$int,A$LETTER)
A B
(0,3] 2 1
(3,6] 32 49
(6,9] 9 7
在这种情况下,第一笔金额应为2 + 7,第二笔金额应为1 + 9,第三笔金额应为32 + 49
答案 0 :(得分:1)
你可以试试这个:
library(dplyr)
as.integer(table(filter(A, LETTER == 'A')$int) + rev(table(filter(A, LETTER == 'B')$int)))
输出将是:
[1] 9 81 10
注意,您实际上并不需要dplyr
,您可以按以下方式进行不同的过滤:
as.integer(table(A[A$LETTER == 'A', ]$int) + rev(table(A[A$LETTER == 'B', ]$int)))