Dopo aver importato una tabella da Wikipedia, ho una lista di valori della forma seguente:Posso usare gsub() su ogni elemento di un frame di dati?
> tbl[2:6]
$`Internet
Explorer`
[1] "30.71%" "30.78%" "31.23%" "32.08%" "32.70%" "32.85%" "32.04%" "32.31%" "32.12%" "34.07%" "34.81%"
[12] "35.75%" "37.45%" "38.65%" "40.63%" "40.18%" "41.66%" "41.89%" "42.45%" "43.58%" "43.87%" "44.52%"
$Chrome
[1] "36.52%" "36.42%" "35.72%" "34.77%" "34.21%" "33.59%" "33.81%" "32.76%" "32.43%" "31.23%" "30.87%"
[12] "29.84%" "28.40%" "27.27%" "25.69%" "25.00%" "23.61%" "23.16%" "22.14%" "20.65%" "19.36%" "18.29%"
sto cercando di sbarazzarsi dei segni di percentuale, al fine di convertire i dati in forma numerica.
C'è un modo più rapido per pulire questi dati rispetto a una vettorizzazione? Il mio codice corrente segue:
data <- lapply(tbl[2:6], FUN = function(x) as.numeric(gsub("%", "", x)))
I dati alla fine diventano un frame di dati, ma non ho potuto ottenere gsub
per funzionare correttamente su tutti gli elementi di un frame di dati. C'è un modo per gsub() ogni elemento di un frame di dati?
The code for the project is online, with results. Grazie in anticipo!
Questo è più probabilmente solo un elenco di un dataframe. E ... lapply funzionerà anche con i dataframes poiché sono in realtà elenchi con attributi speciali. –
È una lista. Ma 'gsub' non funziona come ho bisogno su di esso (' lapply' funziona bene). –
Poiché data.frames sono elenchi speciali e si dispone di un metodo testato per gli elenchi, questo avrebbe quasi sicuramente funzionato: 'dfrm <- as.data.frame (lapply (tbl [2: 6], FUN = function (x) as .numeric (gsub ("%", "", x)))) ' –