2012-03-22 10 views
0

一致する列について質問があり、一致する場合は1に、一致しない場合は0に置き換えます。私は列名を持つ行列を持っています。私は、他の3つのデータフレーム列とikをマッチさせ、マッチしているかどうかその行列を置き換えたいと思います。Rは異なるデータフレーム列のrownamesと一致し、1(一致する場合)と0(一致しない場合)を置き換えます。

最後に私は、この行列を作成する:

dataframe1 dataframe2 dataframe3 
aaa 1  0  0 
aab 0  1  0 
aac 1  0  0 
aad 0  1  1 
aae 1  1  1 

dataframe1 <- c("aaa","aac","aae") 
dataframe2 <- c("aab","aad","aae") 
dataframe3 <- c("aad","aae") 

誰もがこれで私を助けることができますか?ここで

+0

再現例を? – Andrie

+0

dataframe1 < - c( "aa"、 "aae")dataframe2 < - c( "aab"、 "aad"、 "aae")dataframe3 < - c( "aad"、 "aae")この変数から行列を生成することができます、私は非常に幸せになる! – Lisann

+0

良い今あなたの質問にそれを入れ、私は一見を持って誘惑されるかもしれません。 – Andrie

答えて

3

あなたが行く:

df1 <- c("aaa","aac","aae") 
df2 <- c("aab","aad","aae") 
df3 <- c("aad","aae", "x", "y") 

dfs <- list(df1=df1, df2=df2) 

zz <- sapply(dfs, function(x)df3 %in% x) 
rownames(zz) <- df3 
zz 
     df1 df2 
aad FALSE TRUE 
aae TRUE TRUE 
x FALSE FALSE 
y FALSE FALSE 
+0

そして、0と1を得るには、 'zz < - sapply(dfs、function(x)1 *(%df3%in% – BenBarnes

関連する問題