R:函数在内部IF语句后停止

时间:2018-06-27 13:57:41

标签: r function if-statement

我编写了一个函数来对频率(数据框中的值)进行一些计算,并将其放在新的列中。如果值为NA,则无法执行某些计算,因此将其更改为0。随后,由于无法将值除以0,因此我希望结果为第一个频率。

现在,该函数在函数中的IF语句之后停止。你们能在没有数据的情况下看到问题是什么吗?

B <- function(frame1, frame2, col){
    Bframe <- merge(frame1, frame2, by = column, all = TRUE)
    Bframe$freq.x[is.na(Bframe$freq.x)] <- 0 
    Bframe$freq.y[is.na(Bframe$freq.y)] <- 0 
    if (Bframe$freq.y == 0) { 
      Bframe$result <- Bframe$freq.x
    }
    Bframe$result <- Bframe["freq.x"] - Bframe["freq.y"]
    Bframe$percentage <- (Bframe["result"]/Bframe["freq.y"])*100
    Bframe$percABS <- abs(Bframe$percentage)
    return(Bframe)
}

因此,该函数的工作结果为Bframe $ result。结构有问题吗?

我也遇到了一个错误:     警告信息:     在if(Bframe $ freq.y == 0){:     条件的长度> 1,并且仅使用第一个元素。

如果您确实需要一些输入数据,请告诉我。

0 个答案:

没有答案