2011-10-30 16 views
13

में प्रत्येक एन-वें पंक्ति को हटाने से मैं आर में डेटाफ्रेम से प्रत्येक एन-वें पंक्ति को कैसे हटा सकता हूं?डेटाफ्रेम

+7

यहां एक तरह से यह करने के लिए है। 'डीएफ [सीईसी (1, एनआरडब्ल्यू (डीएफ), द्वारा = एन),]' – Ramnath

+9

@ रामनाथ: 'डीएफ [-seq (एन, एनआरडब्ल्यू (डीएफ), द्वारा = एन),] बेहतर काम कर सकता है – Henry

उत्तर

31

आप के रूप

Nth.delete<-function(dataframe, n)dataframe[-(seq(n,to=nrow(dataframe),by=n)),] 

इस प्रकार एक समारोह बना सकते हैं के लिए इसे बाहर का परीक्षण

DF<-data.frame(A=1:15, B=rnorm(15), C=sample(LETTERS,15)) 
Nth.delete(DF, 3) 
+2

तो डीएफ [ -रो नम्बर,] उस विशेष पंक्ति को हटा देता है – MySchizoBuddy

+0

यह सही है –

7

आप एक डेटा फ्रेम या वेक्टर आदि उपयोग सापेक्ष subsetting से प्राप्त करने के लिए वें स्तंभों में से प्रत्येक चाहते हैं चलो ...

सेट सेट को दोहराकर एनएच कॉलम का चयन करें 3 के मॉड्यूल के रूप में (अपनी इच्छा के अनुसार nth चुनें)

> x <- c(1,2,3,4,5,6) 
> d <- rbind(x,x,x) 
> df <- as.data.frame(d, row.names=T) 
> c <- 1:ncol(df) 
> c 
[1] 1 2 3 4 5 6 
c%%3 ### nth cycle, here every 3 
[1] 1 2 0 1 2 0 

#select the every 3rd column of every 3 
> df[, c%%3==0] 
    V3 V6 
1 3 6 
2 3 6 
3 3 6 

#every first column of every 3 
> df[, c%%3==1] 
    V1 V4 
1 1 4 
2 1 4 
3 1 4 

#every 2nd column of every 3 
> df[, c%%3==2] 
    V2 V5 
1 2 5 
2 2 5 
3 2 5 


#drop the 3rd columns 
> df[, !(c%%3==0)] 
    V1 V2 V4 V5 
1 1 2 4 5 
2 1 2 4 5 
3 1 2 4 5 

आदि ... स्वैप ग subsetting पंक्तियों के लिए < -nrow (DF) ..

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