2 つのデータ フレーム df1 と df2 があります。同じ (2 つの) 列があります。df2 にある df1 から行を削除したい。
質問する
11215 次
3 に答える
8
複数のパッケージでそれを行うことができます。しかし、ベースRでそれを行う方法は次のとおりです。
df1 <-matrix(1:6,ncol=2,byrow=TRUE)
df2 <-matrix(1:10,ncol=2,byrow=TRUE)
all <-rbind(df1,df2) #rbind the columns
#use !duplicated fromLast = FALSE and fromLast = TRUE to get unique rows.
all[!duplicated(all,fromLast = FALSE)&!duplicated(all,fromLast = TRUE),]
[,1] [,2]
[1,] 7 8
[2,] 9 10
于 2012-06-06T02:34:46.810 に答える
3
これを試して:
df2 <-matrix(1:6,ncol=2,byrow=TRUE)
df1 <-matrix(1:10,ncol=2,byrow=TRUE)
data.frame(v1=setdiff(df1[,1], df2[,1]), v2=setdiff(df1[,2], df2[,2]))
v1 v2
1 7 8
2 9 10
df1
とは Lapointe のものと同じですが、その逆であることに注意してくださいdf2
。これは、df2 にある df1 から行を削除したいため、setdiffx
は に含まれている要素を削除するためy
です。見る?setdiff
Lapointe と同じ結果が得られます。
于 2012-06-06T11:26:45.747 に答える