私は2つのデータフレームを持っています.これが最初のものです:
df <- data.frame(p=letters[1:3],y1=c(2,4,3))
df
p y1
1 a 2
2 b 4
3 c 3
そして2番目のもの:
df2 <- data.frame(p=rep(letters[1:3],c(3,2,4)),y2=c(3,1,1,4,3,4,3,3,1),d=rep(1,length=9))
df2
p y2 d
1 a 3 1
2 a 1 1
3 a 1 1
4 b 4 1
5 b 3 1
6 c 4 1
7 c 3 1
8 c 3 1
9 c 1 1
私がしたいのは、 (a、b、c など) のdf2
各値(この場合はすべての行) がinでグループ化された行よりも大きいの行を取得することです。p
d=1
y2
y1
p
df
この説明はおそらく意味をなさないので、キックする必要がある 2 行:行 1 in df2
、 for は in よりも大きいため、行6a
はfor inの値が 4 であるため、 inの値は 3 です。 .y2=3
y1=2
df
c
df2
y
c
df
私はdata.tablesを扱っているので、「data.table-solution」がいいでしょう。
setkey(df2,d)
df2[1,y>??,by="p"]