【发布时间】:2019-09-03 13:26:05
【问题描述】:
我正在尝试找出正确的方法来实现代码以在 R (Mut) 中创建一个新列,条件如下:
如果 RareNuc[i] = Ref[i] 那么 Frequencies$Mut
其他频率$Mut
起始数据框:
> Frequencies
RareNuc Ref CommNuc
A A A
A A A
C C C
C C C
T T T
T T T
G G G
G G A
T C C
G G A
A A G
T C C
G G A
C C A
T G G
T C C
A C C
A A G
理想输出:
> Frequencies
RareNuc Ref CommNuc Mut
A A A A
A A A A
C C C C
C C C C
T T T T
T T T T
G G G G
G G A A
T C C T
G G A A
A A G G
T C C T
G G A A
C C A A
T G G T
T C C T
A C C A
A A G G
我在这方面已经有一段时间了,这是我最接近工作的事情。
for (i in 1:nrow(Frequencies))
{
if (match(Frequencies$RareNuc[i], Frequencies$Ref[i]))
{Frequencies$Mut[i] <- Frequencies$RareNuc[i]}
else {Frequencies$Mut[i] <- Frequencies$CommNuc[i]}
}
在 Frequencies$Mut 的第一行中,它似乎可以工作,但是,一旦 RareNuc、Ref 和 CommNuc 列不再全部匹配,Frequencies$Mut 列开始仅输出 A。
也会产生这个错误:
if (match(Frequencies$RareNuc[i], Frequencies$Ref[i])) { 中的错误: 论点不能解释为合乎逻辑的
谢谢!
【问题讨论】:
标签: r replace logic conditional-statements