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またはあなたはそのような手順を使うことができますBdata.framesmatrices
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, ]