R匹配来自不同数据帧列的rownames并替换为1(如果匹配)和0(如果不匹配)

时间:2012-03-22 14:35:29

标签: r matrix replace match

我有一个关于匹配列的问题,如果匹配则将其替换为1,如果没有匹配则替换为0。我有一个带有列名的矩阵。我想将ik与其他3个数据帧列匹配,并在该矩阵中替换它是否匹配。

最后我要创建这个矩阵:

   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")

任何人都可以帮我吗?

1 个答案:

答案 0 :(得分: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