2013-03-15 22 views
17

Questo funzionaargomento carattere non nella stringa R funzione split (strsplit)

x <- "0.466:1.187:2.216:1.196" 
y <- as.numeric(unlist(strsplit(x, ":"))) 

Valori di blat$LRwAvg tutti sembrano X sopra, ma questo non funziona

for (i in 1:50){ 
    y <- as.numeric(unlist(strsplit(blat$LRwAvg[i], "\\:"))) 
    blat$meanLRwAvg[i]=mean(y) 
} 

A causa di:

Errore in strsplit (blat $ LRwAvg [i], "\:"): argomento non carattere

Non importa se ho una barra rovesciata, due o null.

Qual è il mio problema? (Non in generale, voglio dire in questo compito speciale, tecnicamente)

+0

Qual è l'output di 'classe (Blat $ LRwAvg)', e puoi darci alcuni dati da 'blat $ LRwAvg' – alexwhan

+3

@AWE È un tipo di errore. costringi l'argomento al carattere, 'as.character (blat $ LRwAvg)' – agstudy

+1

@alexwhan Ho notato che ho cancellato il mio commento, ma non abbastanza velocemente: $. Sembra che sia un problema con i fattori. Così costringi al personaggio come suggerisce @agstudy, o usa 'stringsAsFactors = FALSE' quando crei il data.frame. – James

risposta

17

Come agstudy implicita blat$LRwAvg <- as.character(blat$LRwAvg) prima del ciclo fisso è

blat$meanLRwAvg <- blat$gtFrqAvg #or some other variable in data frame with equal length 
blat$LRwAvg <- as.character(blat$LRwAvg) 
for (i in 1:50){ 
    y <- as.numeric(unlist(strsplit(blat$LRwAvg[i], "\\:"))) 
    blat$meanLRwAvg[i]=mean(y) 
} 
Problemi correlati