我有一個數據框,可能會或可能不會有一些特定的列存在。如果他們確實存在,我想選擇使用dplyr
的列,如果不存在,只是忽略我試圖選擇它們。這裏有一個例子:如何選擇可能存在或不存在的列?
# Load libraries
library(dplyr)
# Create data frame
df <- data.frame(year = 2000:2010, foo = 0:10, bar = 10:20)
# Pull out some columns
df %>% select(year, contains("bar"))
# Result
# year bar
# 1 2000 10
# 2 2001 11
# 3 2002 12
# 4 2003 13
# 5 2004 14
# 6 2005 15
# 7 2006 16
# 8 2007 17
# 9 2008 18
# 10 2009 19
# 11 2010 20
# Try again for non-existent column
df %>% select(year, contains("boo"))
# Result
#data frame with 0 columns and 11 rows
在後一種情況下,我只是想,因爲列boo
不存在同列year
返回的數據幀。我的問題是爲什麼我會在後一種情況下得到一個空的數據框,以及避免這種情況並達到預期結果的好方法?
編輯:會話信息
R version 3.3.3 (2017-03-06)
Platform: x86_64-w64-mingw32/x64 (64-bit)
Running under: Windows 7 x64 (build 7601) Service Pack 1
attached base packages:
[1] stats graphics grDevices utils datasets methods base
other attached packages:
[1] 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.2.0 DBI_0.6-1 tools_3.3.3
[7] tibble_1.3.0 Rcpp_0.12.10
我不能重現此錯誤與我的版本dplyr的返回一條警告消息。你能分享'sessionInfo()'的結果嗎?另外,你是否可以嘗試從GitHub('devtools :: install_github(「tidyverse/dplyr」)')安裝dplyr的開發版本並查看是否修復了它? –
我已將會話信息添加到原始問題。 – Lyngbakr
它給出了dplyr'0.5.0.9001'的正確輸出。 – mt1022