我在R
中有以下数据框> head(genes)
Genes
1 APOBEC4
2 B3GALT2
3 C1orf127
4 CAMK1G
5 CAMTA1
6 EPHX1
我有一个带行索引的向量。
> head(sig)
[1] 10 11 41 54 125 126
现在我想在数据框genes
中添加其他列,以便索引sig
中的行将获得值" Yes
"否则" NO
"
类似的东西:
head(genes)
Genes Sig
1 APOBEC4 NO
2 B3GALT2 NO
3 C1orf127 NO
4 CAMK1G NO
5 CAMTA1 NO
...
10 XXX YES
...
41 YYY YES
我试过但我找不到解决方案。
答案 0 :(得分:2)
我们可以简单地使用base R
genes$Sig <- c("NO", "YES")[(seq_len(nrow(genes)) %in% sig) + 1]
或ifelse
genes$Sig <- ifelse(seq_len(nrow(genes)) %in% sig, "YES", "NO")
或者创建一个“NO”的列,然后根据索引
指定“YES”genes$Sig <- "NO"
genes$Sig[sig] <- "YES"
答案 1 :(得分:1)
如果您的数据框中有rownames
,我不确定。我们可以使用row_number()
中的dplyr
函数检查sig
中是否存在该行,并相应地指定值
library(dplyr)
genes %>%
mutate(Sig = ifelse(row_number() %in% sig, "YES", "NO"))