2013-03-15 4 views
17

यह काम करता है blat$LRwAvg सभी कीगैर चरित्र तर्क

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

मान ऊपर X की तरह लग रही है, लेकिन यह काम नहीं करता

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

के कारण:

स्ट्रस्प्लिट में त्रुटि ($ LRwAvg [i], "\:" blat:) गैर-वर्ण तर्क

इससे कोई फर्क नहीं पड़ता कि मेरे पास एक, दो या शून्य बैकस्लैश हैं।

मेरी समस्या क्या है? (नहीं आम तौर पर, मैं इस विशेष कार्य में मतलब है, तकनीकी रूप से)

+0

क्या 'वर्ग के उत्पादन में ($ LRwAvg blat)' है तय, और आप हमें दे सकते हैं 'blat $ LRwAvg' – alexwhan

+3

@AWE से कुछ डेटा यह एक त्रुटि प्रकार है। चरित्र के लिए तर्क को मजबूर करें, 'as.character (blat $ lRwAvg) ' – agstudy

+1

@alexwhan मैंने देखा कि मेरी टिप्पणी हटा दी गई है, लेकिन जल्दी से पर्याप्त नहीं है: $। ऐसा लगता है कि यह कारकों के साथ एक समस्या है। तो @agstudy के रूप में चरित्र के लिए वाणिज्य बताता है, या data.frame बनाते समय 'तारों AsFactors = FALSE' का उपयोग करें। – James

उत्तर

17

agstudy गर्भित blat$LRwAvg <- as.character(blat$LRwAvg) जैसा कि पहले पाश यह

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) 
} 
संबंधित मुद्दे