2 つのデータセットがあります。
A = 3085 行、1 列。B = 527 行、1000 列。
これらの両方のデータセットのすべての値は、シェープファイルの名前です。
A - B[,1] の新しいリストを作成したいと思います。別名、B の最初の列に表示される値を A から削除したいと思います。
最終的には、1000 列すべてに対してこれをループします。
誰かが助けることができれば、それは大歓迎です。
よろしく、
2 つのデータセットがあります。
A = 3085 行、1 列。B = 527 行、1000 列。
これらの両方のデータセットのすべての値は、シェープファイルの名前です。
A - B[,1] の新しいリストを作成したいと思います。別名、B の最初の列に表示される値を A から削除したいと思います。
最終的には、1000 列すべてに対してこれをループします。
誰かが助けることができれば、それは大歓迎です。
よろしく、
もしそうなら、A
またはあなたはそのような手順を使うことができますB
data.frames
matrices
A[!(A[,1] %in% B[,1]), 1]
私はちょうど今あなたの質問を完全に理解しました。すべての列をループするには、ファミリ関数B
を使用できます。apply
この呼び出しは、の各列をパラメーターとして繰り返し、B
のx
列の数に等しい長さのリストを返します。リストのB
各要素は、のA
対応する列の不一致要素のベクトルになりますB
。
apply(B, 2, function(x) A[!(A[,1] %in% x), 1])
簡単なもの(ただしテストされていない):
x <- A[, 1]
keep <- seq_along(x)
for(i in seq_along(B))
keep <- setdiff(keep, which(x[keep] %in% B[, i]))
A[keep, ]