2012-01-18 20 views
6

मैं एक पुनरावृत्त फैशन में एक dataframe के स्तंभों को सांख्यिकी लागू करना चाहते हैं:आर पुनरावृति dataframe

कॉलम नंबर 1: 'ए' टैग है कि मैं भेदभाव करना चाहते हैं प्रतिनिधित्व करता है:

for (i in names(dataframe)) { 
    i <- as.name(i) 
    group1 <- i[A=="locationX"] 
    group2 <- i[A!="locationX"] 
    p <- wilcox.test(group1,group2,na.action(na.omit))$p.value 
} 

हालांकि, as.name()names(dataframe) द्वारा उत्पन्न कॉलम नामों से उलटा कॉमा को हटाने का प्रयास करना है।

दुर्भाग्य से यह मेरे त्रुटि देता है:

Error in i[A == "locationX"] : object of type 'symbol' is not subsettable

मुझे लगता है कि as.name() यह करने के लिए सही तरीका नहीं है।

कोई सुराग?

+1

क्या आप कृपया एक उदाहरण 'ए', और शायद 'हेड (डेटाफ्रेम)' दे सकते हैं (जो हमें आपके डेटाफ्रेम पर एक नज़र देता है)? –

उत्तर

8

एक ही तरीका है यह समझ में आता है, तो 'ए' के ​​लिए "locationX" और बातचीत और 'ए' की लंबाई के लिए की कई उदाहरण के कई उदाहरण के साथ एक वेक्टर होने के लिए के रूप में ही "डेटाफ्रेम" में पंक्तियों की संख्या। अगर ऐसा है तो कुछ इस तरह काम कर सकते हैं:

p <- list() 
for (i in names(dataframe)) { 
    # using as.names not needed and possibly harmful 
    group1 <- dataframe[[i]][A == "locationX"] 
    group2 <- dataframe[[i]][A != "locationX"] 
    p[i] <- wilcox.test(group1,group2,na.action(na.omit))$p.value 
} 

ध्यान दें कि भले ही आप अपने कोड है कि आप अभी भी "पी" लूप के माध्यम से हर बार अधिलेखित हो गया होता के साथ एक त्रुटि नहीं मिला।

संबंधित मुद्दे