根据 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"))
我有一个 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"))