Странное поведение неиспользуемого аргумента в функции R - PullRequest
0 голосов
/ 19 февраля 2019

Я реализовал функцию 'identif_case' т.е.:

##  Function that identify the gaps of NAs according to their length
identify_case = function(df, variable, seuil) {

df$value   = ifelse(is.na(df[,variable])==TRUE,1,0)
df$temp    = rep.int(rle(df$value)$lengths, rle(df$value)$lengths)
df$gap     = ifelse(df$value == 1, df$temp, 0)
df$temp    = NULL
df$case.nb = ifelse((df$gap > 0 & df$gap <= seuil),"cas1",ifelse((df$gap > 
seuil),"cas2","OK"))
return(df)

}

Когда я вызываю функцию, используя код ниже:

temp.df      = identify_case(df = temporary_df,variable = "energy_NA",seuil 
= 3)

Я получаю ошибку :

Error in identify_case(df = temporary_df, variable = "energy_NA", seuil = 3): 
unused argument (seuil = 3)

Что странно, когда я добавляю строку

seuil = seuil 

в началефункция 'identif_case' . Я не получаю никакой ошибки, и код выполняется идеально.

т.е. :

## Function that identify the gaps of NAs according to their length
identify_case = function(df, variable, seuil) {

seuil = seuil


df$value   = ifelse(is.na(df[,variable])==TRUE,1,0)
df$temp    = rep.int(rle(df$value)$lengths, rle(df$value)$lengths)
df$gap     = ifelse(df$value == 1, df$temp, 0)
df$temp    = NULL
df$case.nb = ifelse((df$gap > 0 & df$gap <= seuil),"cas1",ifelse((df$gap > 
seuil),"cas2","OK"))
return(df)

}

Кто-нибудь что здесь происходит?

...