如何解决比较三个分类列并用0,1或2表示结果
如何比较其中一列的分类内容和其他三列的内容?例如,如果x的数据与y的数据相同,则用0表示,它与v的数据相同,用1表示,如果与z的数据相同,则用2表示。
x<- c(C,T,G,A,C,G)
y<- c(C,T)
v<- c(A,C)
z<- c(CTC,CCT,ATC,AC,CC,GC,CTAC)
解决方法
嗨,那里!
您可以使用dyplr及其case_when()
参数来定义多个if语句:
# define data
x<- c("C","T","G","A","C","G")
y<- c("C","T")
v<- c("A","C")
z<- c("CTC","CCT","ATC","AC","CC","GC","CTAC")
dat <- data.frame(as.character(x),as.character(y),as.character(v),as.character(z))
# create new column considering your desired conditions
dat <- dat %>%
mutate(new_column = case_when(x == y ~ 0,x == v ~ 1,x == z ~ 2,TRUE ~ NA_real_))
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。