In dplyr, voglio escludere le colonne che contengono la parola "junk" ma, potrebbe non esserci nessuna colonna che contiene la parola "junk". In tal caso, dplyr dovrebbe restituire tutte le colonne. Ma non ne restituisce nessuno. Vedere il test case in basso.in dplyr selezionare con una goccia non funziona
df<-data.frame(name=paste("name",1:5), age=1:5)
str(df)
# 'data.frame': 5 obs. of 2 variables:
# $ name: Factor w/ 5 levels "name 1","name 2",..: 1 2 3 4 5
# $ age : int 1 2 3 4 5
df1<-df%>%select(-contains("junk"))
str(df1)
# 'data.frame': 5 obs. of 0 variables
Dove sto andando male?
Si noti che questo funziona bene, se almeno una colonna aveva quella condizione> df <-data.frame (name = pasta ("nome", 1: 5), agejunk = 1: 5) > df1 <-df%>% select (-contains ("junk")) > str (df1) 'data.frame': \t 5 obs. di 1 variabile: $ nome: fattore w/5 livelli "nome 1", "nome 2", ..: 1 2 3 4 5 – guna
Ho pensato qualcosa come 'df%>% select (ifelse (sum (grepl (" junk ", names (df)))> 0, -contains (" junk "), everything()))' funzionerebbe, ma 'tutto()' non sembra restituire tutto ... – tospig
e un storia simile con 'df%>% select (-matches (" * junk * "))' – tospig