私は、ベクトルの各位置でTRUE/FALSEの組み合わせに基づいて2つの論理名付きベクトルの間の条件を検出したいという状況があります。例えば:私は3つの状態を検出するこれら二つのベクトルの各要素に対して特定の条件に基づいて論理ベクトル要素を選択する
x <- c(TRUE, FALSE, FALSE, TRUE)
names(x) <- c("a", "b", "c", "d")
y <- c(TRUE, TRUE, FALSE, FALSE)
names(y) <- names(x)
:
x[i]
はTRUE
とy[i]
はTRUE
あります。x[i]
は、FALSE
とy[i]
がTRUE
あるx[i]
は
TRUE
と
y[i]
が
FALSE
あります。
x
とy
の長さは同じですが、この例よりも長くなる可能性があります。私は各条件の要素の名前を取得し、新しい変数に要素名を割り当てる必要があります。この例では:
v1 <- "a"
v2 <- "b"
v3 <- "d"
これら2つのベクトルの長いバージョンで私のようなもので終わるかもしれない:
v1 <- c("a", "e")
v2 <- c("b", "f", "g")
v3 <- c("d", "i", "k", "l")
これを行うための最善のベクトル化の方法は何ですか。私はそれは簡単だと思うが、私は答えを思いつくことができない。前もって感謝します。
ああ、そう "" TTに割り当てられます、 "b" をTFに私は突然、我々は
split
にf
引数にリストを渡すことができることを覚えておいてくださいしかし、なぜx + y + x?私はxを2回追加することはありません。なるほど、分かりました。これは、4つの状況に対して4つの異なる整数を生成し、論理を整数として使用します。賢い! – Ernie- 'split(names(x)、interaction(x、y、drop = TRUE))'を助けるインタラクションのもう一つの例は、追加によって 'g'を作るより解釈可能にするかもしれません。 – thelatemail
とてもいいです!両方とも非常にありがとう! – Ernie