2016-09-12 12 views
-6
linkedin <- c(16, 9, 13, 5, 2, 17, 14) 
facebook <- c(17, 7, 5, 16, 8, 13, 14) 

interpret <- function(num_views) { 
    if (num_views > 15) { 
    print("You're popular!") 
    return(num_views) 
    } else { 
    print("Try to be more visible!") 
    return(0) 
    } 
} 


interpret_all <- function(views, return_sum = TRUE) { 
    count <- 0 

    for (v in views) { 
    count <- count + interpret(v) 
    } 

    if (return_sum) { 
    return(count) 
    } else { 
    return(NULL) 
    } 
} 

interpret_all(linkedin) 
interpret_all(facebook) 

私は解釈関数を完全に理解しています。しかし、私はforループ内でifとelse文を理解するのが難しいです。解釈関数でifとelseの目的が何であるかを親切に分解してください。事前のおかげで関数内の関数(Rプログラミング)

答えて

0

else句が含まれてif文は条件が評価され

if (condition) { code1 } else (code2 } 

形と

  • 条件は、次にCODE1が実行されたTRUEであれば(そしてコード2であるのです無視されます)または
  • 条件がFALSEの場合は、code2が実行されます(code1は無視されます)。

図の形でそれを説明するフローチャートはここで見つけることができます(そのページ上の第二のフローチャートを参照してください)http://www.programiz.com/r-programming/if-else-statement

+0

私は完全に理解しています。私は、interpret_all関数の出力を表示する際に、どのような違いが返されるのか理解できませんでした。 Thanks – user6210276

+0

'return_sum'は' interpret_all'関数の引数です。 'TRUE'と指定すると、カウントが返されます。 'interpret_all(linkedin、TRUE)'を返し、 'FALSE'と指定すると' NULL'が返されます。 'interpret_all(linkedin、FALSE)'です。それをまったく指定しないと、たとえば'interpret_all(linkedin)'それはあなたが 'TRUE'を指定したかのようです。 –

+0

ありがとうございました。その部分は理解しにくかった。 – user6210276