来自 dplyr 的选择函数出错 [英] Error with select function from dplyr

查看:24
本文介绍了来自 dplyr 的选择函数出错的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

当我使用 dplyr 的 select 函数时,它不起作用并给我一个错误,指出我要选择的列名是未使用的参数.但是,如果我在函数调用之前指定 dplyr 像 s: "dplyr::select" 那么它会正常工作:

这是一个示例 df:

 sampledf <- 结构(list(CRN = c(5497L, 6515L, 7248L, 36956L, 37021L),varA = 结构(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)版本

<块引用>

版本_
平台 x86_64-w64-mingw32
拱形 x86_64
操作系统 mingw32
系统 x86_64,mingw32
状态
大三
次要 4.0
2017年
04月
第 21 天
SVN 修订版 72570
语言 R
version.string R 版本 3.4.0 (2017-04-21)昵称你这个愚蠢的黑暗

这是会话信息:

sessionInfo()

<块引用>

R 版本 3.4.0 (2017-04-21)平台:x86_64-w64-mingw32/x64(64位)运行于:Windows >= 8 x64 (build 9200)

矩阵产品:默认

地区:[1] LC_COLLATE=English_United States.1252 LC_CTYPE=English_United States.1252 LC_MONETARY=English_United States.1252[4] LC_NUMERIC=C LC_TIME=English_United States.1252

附加基础包:[1] stats graphics grDevices utils datasets 方法基础

其他附加包:[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-76lattice_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.0glue_1.1.0 hms_0.3 living_2.41-3 parallel_3.4.0
[49] pbkrtest_0.4-7 colorspace_1.3-2 rvest_0.3.2 bindr_0.1haven_1.1.0 quantreg_5.33

解决方案

我遇到了同样的问题,它是由与另一个包的名称冲突引起的.使用:dplyr::select 指定包.

When I use the select function from dplyr, it doesn't work and gives me an error stating that the column names that I want to select are unused arguments. However, if I specify dplyr before the function call like s: "dplyr::select" then it works as normal:

Here is a sample df:

 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")

this produces the error:

 sample_error <- select(sampledf, varA)

Error in select(sampledf, varA) : unused argument (varA)

and this works:

 sample_working <- dplyr::select(sampledf, varA)

 version

version _
platform x86_64-w64-mingw32
arch x86_64
os mingw32
system x86_64, mingw32
status
major 3
minor 4.0
year 2017
month 04
day 21
svn rev 72570
language R
version.string R version 3.4.0 (2017-04-21) nickname You Stupid Darkness

And here is the session info:

sessionInfo()

R version 3.4.0 (2017-04-21) Platform: x86_64-w64-mingw32/x64 (64-bit) Running under: Windows >= 8 x64 (build 9200)

Matrix products: default

locale: [1] LC_COLLATE=English_United States.1252 LC_CTYPE=English_United States.1252 LC_MONETARY=English_United States.1252 [4] LC_NUMERIC=C LC_TIME=English_United States.1252

attached base packages: [1] stats graphics grDevices utils datasets methods base

other attached packages: [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

loaded via a namespace (and not attached): [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

解决方案

I had the same issue and it was caused by name clash with another package. Use: dplyr::select to specify the package.

这篇关于来自 dplyr 的选择函数出错的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆