根据 R 中的查找 table 添加新列

Adding a new column based off a lookup table in R

我有一个 table:

ID  pheno   x1   x2   x3 
ABC 1       .43 .634 .542
BCD 0       .542 .42 .43
LOP 1       .235 .46  .78

等等

我有另一个 table,其中这个 table 中的每个 ID 都是男性

ID 
ABC 
LOP
etc

我想在第二个 table 中匹配这些 ID,然后在 table 1 中添加一列来指示这些 ID 是否出现在 table 2

输出:

ID  pheno   x1   x2   x3  sex
ABC 1       .43 .634 .542 1
BCD 0       .542 .42 .43  0
LOP 1       .235 .46  .78 1

我试过了

newtable <- table1[ifelse(table1$ID %in% table2$V1, table1$SEX <- 1, table1$SEX <-0),] 

但是性别列每行输出 0。

非常感谢您的帮助

鉴于您需要 MALE==1 和 FEMALE==2,这是您可以使用的解决方案:

table1$sex <- (!table1$ID %in% table2$ID) + 1
table1

#>    ID pheno    x1    x2    x3 sex
#> 1 ABC     1 0.430 0.634 0.542   1
#> 2 BCD     0 0.542 0.420 0.430   2
#> 3 LOP     1 0.235 0.460 0.780   1

其中:

table1 <- read.table(text = "ID  pheno   x1   x2   x3 
ABC 1       .43 .634 .542
BCD 0       .542 .42 .43
LOP 1       .235 .46  .78", header = TRUE)

table2 <- data.frame(ID = c("ABC","LOP"))