Ho una cornice dati con la prima colonna come identificatore categoriale, la seconda colonna come valore di frequenza e le colonne rimanenti come conteggi di dati non elaborati. Voglio moltiplicare tutte le colonne di conteggio per la colonna di frequenza ma non per le prime due.Selezione di colonne specifiche quando si utilizza la funzione mutate_each da dplyr
Tutte le colonne di conteggio prime iniziano con una lettera maiuscola seguita da un punto, ad esempio "L.abd", T.xyz ecc
Per esempio, se io uso il codice:
require(dplyr)
ID <- c(1,2,3,4,5,6)
Freq <- c(0.1,0.2,0.3,0.5,0.1,0.3)
L.abc <- c(1,1,1,3,1,0)
L.ABC <- c(0,3,2,4,1,1)
T.xyz <- c(1,1,1,1,0,1)
F.ABC <- c(4,5,6,5,3,1)
df <- as.data.frame(cbind(ID, Freq, L.abc, L.ABC, T.xyz, F.ABC))
df_new <- df %>% mutate_each(funs(.*Freq), starts_with("L."))
Posso creare un nuovo frame di dati contenente le colonne di dati categoriali insieme a quelle colonne che iniziano con "L." che sono stati moltiplicati per il corrispondente valore di frequenza.
C'è un modo per modificare il comando "starts_with" per selezionare tutte le colonne che iniziano con una lettera maiuscola e un punto? I miei tentativi di datare utilizzando modifiche come "[A-Z]." sono stati infruttuosi
Grazie in anticipo
si potrebbe desiderare di usare 'partite ("^ [AZ] \\.", Ignore.case = FALSE)' poiché il suo valore predefinito è TRUE e OP vuole scrivere in maiuscolo le lettere maiuscole. Confronta per esempio 'select (iris, matches ("^[az]. * "))' E 'select (iris, matches ("^[az]. * ", Ignore.case = FALSE))' –
@docendodiscimus Grazie , non ha controllato il caso predefinito. – akrun