R,在使用if else语句的函数中,如果(x [2] ==“h”){:缺少值需要TRUE / FALSE,则继续获取Error

时间:2018-02-22 01:41:25

标签: r if-statement

我在df中有类似下面的数据。我编写了一个函数,可以在几分钟内将其转换为时间。

90 min
39 min
21 min
109 min
100 min
97 min
110 min
84 min
97 min
94 min
80 min
110 min
30 min
95 min
59 min
9 min
2 h 5 min
3 h 45 min
4h
N/A
NA
78 min
80 min
108 min
85 min
5 min
83 min

我编写了这个函数,并且在需要True / False时不断获取错误值。我想我已经处理了NA和N / A案件,但仍然得到了错误。我需要做些什么来纠正功能并消除错误?

myfunction <- function(x){

  if (x=="N/A"){
    x <- NA
  } else if(is.na(x)){
    x <- NA
  }

  x <- unlist(strsplit(x, " ", fixed=TRUE))

  if(x[2]=='min'){
    x <- as.numeric((x[1]))
  }
  if(!is.na(x)){
    if (x[2]=='h'){
      if (is.null(x[4])||is.na(x[4])){
        x <- (as.numeric((x[1])))*60
      }
      if (x[4]=='min')  {
        x <- (as.numeric((x[1])))*60 + as.numeric((x[3]))
      } 
    }
  }

  return(x)}

0 个答案:

没有答案