假设我有一个数据框,其中有三列名为“SNP”(唯一ID),“A1”和“P”。
SNP | A1 | P
rs12 A 0.3426
rs16 B 0.0083
rs18 B 0.0046
我试图在名为“A2”的数据中创建新列,基于列“A1”是否有A然后R将B放在“A2”列中,如果列“A1”有一个B放置一个A列“A2”
这就是我所拥有的,我不确定我是否正确地解决了这个问题,但这是一次尝试。
data<-(read data in)
allele<-function(x) {
isOkay<-all(data[data$A2=="A"])
flag<- ifelse(isOkay, A, B)
return(flag)
}
data <- split(data, data$SNP)
A2 <- sapply(data, allele)
答案 0 :(得分:0)
#assating你的列A1只有两个值A和B,你的数据是mydata
mydata$A2<-with(mydata,ifelse(A1=="A","B","A"))
> mydata
SNP A1 p A2
1 rs12 A 0.3426 B
2 rs16 B 0.0083 A
3 rs18 B 0.0046 A