0
`に次のことを指してnames`は、一つのRセッション内で起こった:by.data.frame(mtcars)では `by`代わり
c("cyl", "mpg") %in% names(mtcars)
エラー:
引数 "インデックスが" 不足しています、既定値なし
実際には、names
を呼び出すとby
と表示されました。 base::names
を呼び出す
names
#function (data, INDICES, FUN, ..., simplify = TRUE)
#UseMethod("by")
#<bytecode: 0x475e718>
#<environment: namespace:base>
は大丈夫だった:function (x) .Primitive("names")
私はRStudioのメニューオプションをクリックすることにより、Rセッションを再起動するが、それは助けにはなりませんでした。 RStudioを閉じると(names
は正しくfunction (x) .Primitive("names")
と表示されます)、これを再現できなくなりました。
これがどうして起こりますか?
その瞬間に私のセッションは(フレイアは、Ubuntuの14.04のフォークです):これが起こる、とRStudioでのセッションの再起動全体場合であり続けるでしょう
sessionInfo()
# R version 3.3.2 (2016-10-31)
# Platform: x86_64-pc-linux-gnu (64-bit)
# Running under: elementary OS Freya
#
# locale:
# [1] LC_CTYPE=en_US.UTF-8 LC_NUMERIC=C
# [3] LC_TIME=cs_CZ.UTF-8 LC_COLLATE=en_US.UTF-8
# [5] LC_MONETARY=cs_CZ.UTF-8 LC_MESSAGES=en_US.UTF-8
# [7] LC_PAPER=cs_CZ.UTF-8 LC_NAME=C
# [9] LC_ADDRESS=C LC_TELEPHONE=C
# [11] LC_MEASUREMENT=cs_CZ.UTF-8 LC_IDENTIFICATION=C
#
# attached base packages:
# [1] stats graphics grDevices utils datasets methods base
#
# other attached packages:
# [1] moodler_0.1 tidyr_0.6.0 dplyr_0.5.0
#
# loaded via a namespace (and not attached):
# [1] lazyeval_0.2.0 magrittr_1.5 R6_2.2.0 assertthat_0.1 DBI_0.5-1
# [6] tools_3.3.2 tibble_1.2 Rcpp_0.12.8 stringi_1.1.2 RMySQL_0.10.9
# [11] openxlsx_3.0.0
興味深いことに、これもRStudioのファイルブラウザを乱してしまいました。p – mpjdem
あなたはおそらく正しいです...そして、RStudioはセッションを再起動するときにグローバル環境を保持するので、再割り当てされた 'names'をそのまま残します。私のコードに明示的に '名前 'を' by'に代入するという明確な点はありませんが、私は引数の名前を "by"にしましたので、入力を解析する際に暗い魔法が起きた可能性があります。 – jakub
Rstudioはヒストリー・クロス・セッションをかなりうまく保っていますので、 '名前< - by'または' names = by'を呼ぶ状況を見つけることができるでしょう。 –