使用dplyr的select函数时,它无法正常工作并给出错误提示,指出我要选择的列名是未使用的参数。但是,如果我在函数调用前指定dplyr,例如s:"dplyr::select",那么它就可以正常工作:
这里是一个示例数据框:
sampledf <- structure(list(CRN = c(5497L, 6515L, 7248L, 36956L, 37021L),
varA = structure(c(2L, 2L, 2L, 2L, 2L), .Label = c("A",
"B"), class = "factor"), varB = c(NA_integer_, NA_integer_,
NA_integer_, NA_integer_, NA_integer_), VarC = c(NA, NA,
NA, NA, 2L), varD = c(NA_integer_, NA_integer_,
NA_integer_, NA_integer_, NA_integer_), varE = c(1L, 1L, 4L, NA, NA)), .Names = c("CRN",
"varA", "varB", "varC", "varD", "varE"), row.names = c(NA, 5L), class = "data.frame")
这会产生错误:
sample_error <- select(sampledf, varA)
在选择(sampledf,varA)中出现错误:未使用的参数(varA)
而这个是有效的:
sample_working <- dplyr::select(sampledf, varA)
version
版本信息
平台:x86_64-w64-mingw32
架构:x86_64
操作系统:mingw32
系统信息:x86_64, mingw32
状态:
主要版本号:3
次要版本号:4.0
发布年份:2017
发布月份:04
发布日期:21
SVN版本号:72570
编程语言:R
版本字符串:R version 3.4.0 (2017-04-21)
代号:You Stupid Darkness
以下是会话信息:
sessionInfo()
R版本3.4.0(2017-04-21)
平台:x86_64-w64-mingw32 / x64(64位)
运行在:Windows> = 8 x64(构建9200)矩阵产品:默认设置
区域设置: [1] LC_COLLATE =英语_美国。1252 LC_CTYPE =英语_美国。1252 LC_MONETARY =英语_美国。1252 [4] LC_NUMERIC = C LC_TIME =英语_美国。1252
附加的基本包: [1]统计图形实用程序数据集方法基础
其他附加包: [1] readxl_1.0.0 bindrcpp_0.2 doBy_4.5-15 reshape2_1.4.2 ltm_1.0-0 polycor_0.7-9 msm_1.6.4 [8] MASS_7.3-47 glmnet_2.0-10 foreach_1.4.3 Matrix_1.2-9 caret_6.0-76 lattice_0.20-35 dplyr_0.7.2 [15] purrr_0.2.3 readr_1.1.1 tidyr_0.6.3 tibble_1.3.3 ggplot2_2.2.1 tidyverse_1.1.1 openxlsx_4.0.17
通过命名空间加载(而不是附加): [1] Rcpp_0.12.11 lubridate_1.6.0 mvtnorm_1.0-6 assertthat_0.2.0 psych_1.7.5 R6_2.2.2 [7] cellranger_1.1.0 plyr_1.8.4 MatrixModels_0.4-1 stats4_3.4.0 httr_1.3.1 rlang_0.1.1 [13] lazyeval_0.2.0 minqa_1.2.4 SparseM_1.77 car_2.1-4 nloptr_1.0.4 labeling_0.3 [19] splines_3.4.0 lme4_1.1-13 stringr_1.2.0 foreign_0.8-67 munsell_0.4.3 broom_0.4.2 [25] compiler_3.4.0 modelr_0.1.1 pkgconfig_2.0.1 mnormt_1.5-5 mgcv_1.8-17 nnet_7.3-12 [31] expm_0.999-2 codetools_0.2-15 ModelMetrics_1.1.0 grid_3.4.0 nlme_3.1-131 jsonlite_1.5 [37] gtable_0.2.0 magrittr_1.5 scales_0.4.1 stringi_1.1.5 xml2_1.1.1 iterators_1.0.8 [43] tools_3.4.0 forcats_0.2.0 glue_1.1.0 hms_0.3 survival_2.41-3 parallel_3.4.0 [49] pbkrtest_0.4-7 colorspace_1.3-2 rvest_0.3.2 bindr_0.1 haven_1.1.0 quantreg_5.33
select()
函数,或者在dplyr之后加载了一个具有自己的select()
函数的包,导致其优先级更高。运行conflicts(detail=TRUE)
以查看函数被重复定义的位置。也许可以展示一下sessionInfo()
,我们可以看到你加载了哪些其他的包。 - MrFlickMASS::select
函数命名冲突的问题。在加载MASS
库之后加载dplyr
库可以解决这个问题。 - alistaireselect
的函数,正如建议的那样。然而,我并没有明确地安装它。我需要它做什么吗? - pd441