r - `names` pointing to `by` instead



在一个R会话内发生以下情况:

c("cyl", "mpg") %in% names(mtcars)

.data.frame中的错误(mtcars):

缺少参数"INDICES",没有默认

实际上,调用names显示by

names
#function (data, INDICES, FUN, ..., simplify = TRUE) 
#UseMethod("by")
#<bytecode: 0x475e718>
#<environment: namespace:base>

调用base::names很好:function (x) .Primitive("names")

我通过点击RStudio的菜单选项重新启动了R会话,但没有帮助。关闭RStudio(即names正确显示function (x) .Primitive("names")),我无法再复制这一点。

这怎么会发生?

我当时的会话(Freya是Ubuntu 14.04的分支):

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中重新启动会话时,最明显的情况就是在代码中的某个点进行names <- by赋值。

然而,由于你无法繁殖,所以不可能知道答案是这么简单,还是任务是更复杂操作的结果。

最新更新