Rスコープ:関数内のグローバル変数を禁止します

ジョナス

R関数内でグローバル変数が使用されている場合に警告をスローする(そして失敗する)方法はありますか?私はそれがはるかに節約であり、意図しない行動を防ぐと思います...例:

sUm <- 10
sum <- function(x,y){
sum = x+y
return(sUm)
}

戻り値の「タイプミス」により、関数は常にを返し10ます。その値を返す代わりにsUm失敗するはずです。

アレックスA。

私の他の答えは、関数内でどのようなアプローチを取ることができるかについてです。次に、関数が定義されたらどうするかについての洞察を提供します。

関数がグローバル変数を使用すべきでないときに使用しないようにするには、codetoolsパッケージを使用します。

library(codetools)

sUm <- 10
f <- function(x, y) {
    sum = x + y
    return(sUm)
}

checkUsage(f)

これにより、メッセージが出力されます。

<anonymous> local variable ‘sum’ assigned but may not be used (:1)

関数でグローバル変数が使用されているかどうかを確認するには、findGlobals()関数の出力をグローバル環境の変数と比較します。

> findGlobals(f)
[1] "{"  "+"  "="  "return"  "sUm"

> intersect(findGlobals(f), ls(envir=.GlobalEnv))
[1] "sUm"

これは、グローバル変数sUmf()おそらく使用されるべきではなかったときに内部で使用されたことを示しています。

この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。

侵害の場合は、連絡してください[email protected]

編集
0

コメントを追加

0

関連記事

分類Dev

R関数のスコープ内のみのグローバル変数

分類Dev

関数内で作成された変数はグローバルスコープを取得しますか?

分類Dev

関数内にグローバルスコープ変数を設定する

分類Dev

C-ローカル関数変数がスコープ(グローバル)変数の値を変更しますエラー動作

分類Dev

qkdbの関数内でグローバル変数を定義します

分類Dev

Pythonは関数内のグローバル変数を改訂します

分類Dev

JavaScript:関数内のグローバル変数を初期化します

分類Dev

PHPは他の関数内の関数内のグローバル変数にアクセスします

分類Dev

グローバル変数を使用せずに、関数内のローカル変数をメインスコープから変更する

分類Dev

クリックハンドラーを使用して関数内のグローバルスコープ変数を変更する

分類Dev

Rのグローバル変数なしのスコープ

分類Dev

Pythonは、関数内の関数に対してのみグローバル変数を共有します

分類Dev

関数スコープ内からグローバル整数変数を変更する

分類Dev

関数を終了した後、グローバルスコープでローカル変数を使用する

分類Dev

pthred_exitは、静的スコープとグローバルスコープの変数を返します

分類Dev

Node.jsは、グローバル変数のコピーをローカルスコープ内に保持します

分類Dev

非同期関数内またはpromise内でグローバル変数の値を設定しますか?

分類Dev

コールバック関数内のローカル変数にアクセスします

分類Dev

javascript関数内にグローバル変数を設定します

分類Dev

PHP:関数内からグローバル変数を設定します

分類Dev

dplyr:関数内の複数の変数をグループ化します

分類Dev

メソッド内の関数内のグローバル変数を更新します

分類Dev

Pythonスレッドは関数内のグローバル変数を変更しません

分類Dev

Pythonはインポートされた関数のグローバルスコープ変数をどこに保存しますか?

分類Dev

PHPグローバルキーワードはスコープを使用して関数内でどのように機能しますか?

分類Dev

Javascript:変数はグローバルスコープで宣言されていますが、関数内では未定義のままです

分類Dev

グローバル内部関数の可変スコープ

分類Dev

tmを使用してR関数にグローバル変数を割り当てます:Linuxのバグ?

分類Dev

tmを使用してR関数にグローバル変数を割り当てます:Linuxのバグ?

Related 関連記事

  1. 1

    R関数のスコープ内のみのグローバル変数

  2. 2

    関数内で作成された変数はグローバルスコープを取得しますか?

  3. 3

    関数内にグローバルスコープ変数を設定する

  4. 4

    C-ローカル関数変数がスコープ(グローバル)変数の値を変更しますエラー動作

  5. 5

    qkdbの関数内でグローバル変数を定義します

  6. 6

    Pythonは関数内のグローバル変数を改訂します

  7. 7

    JavaScript:関数内のグローバル変数を初期化します

  8. 8

    PHPは他の関数内の関数内のグローバル変数にアクセスします

  9. 9

    グローバル変数を使用せずに、関数内のローカル変数をメインスコープから変更する

  10. 10

    クリックハンドラーを使用して関数内のグローバルスコープ変数を変更する

  11. 11

    Rのグローバル変数なしのスコープ

  12. 12

    Pythonは、関数内の関数に対してのみグローバル変数を共有します

  13. 13

    関数スコープ内からグローバル整数変数を変更する

  14. 14

    関数を終了した後、グローバルスコープでローカル変数を使用する

  15. 15

    pthred_exitは、静的スコープとグローバルスコープの変数を返します

  16. 16

    Node.jsは、グローバル変数のコピーをローカルスコープ内に保持します

  17. 17

    非同期関数内またはpromise内でグローバル変数の値を設定しますか?

  18. 18

    コールバック関数内のローカル変数にアクセスします

  19. 19

    javascript関数内にグローバル変数を設定します

  20. 20

    PHP:関数内からグローバル変数を設定します

  21. 21

    dplyr:関数内の複数の変数をグループ化します

  22. 22

    メソッド内の関数内のグローバル変数を更新します

  23. 23

    Pythonスレッドは関数内のグローバル変数を変更しません

  24. 24

    Pythonはインポートされた関数のグローバルスコープ変数をどこに保存しますか?

  25. 25

    PHPグローバルキーワードはスコープを使用して関数内でどのように機能しますか?

  26. 26

    Javascript:変数はグローバルスコープで宣言されていますが、関数内では未定義のままです

  27. 27

    グローバル内部関数の可変スコープ

  28. 28

    tmを使用してR関数にグローバル変数を割り当てます:Linuxのバグ?

  29. 29

    tmを使用してR関数にグローバル変数を割り当てます:Linuxのバグ?

ホットタグ

アーカイブ