2011-10-30 17 views
13

Rのデータフレームからn番目の行をすべて削除するにはどうすればよいですか?データフレーム内のn番目の行をすべて削除する

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

を次のように

+7

はそれを行うための一つの方法です。 '' df [-seq(n、NROW(df)、by = n)、] 'はうまくいくかもしれません – Ramnath

+9

@Ramnath: -rowNumber、]はその特定の行を削除します – Henry

答えて

31

あなたは、データフレームやベクトルなどの使用を法のサブセットからn番目の列のそれぞれを取得したい場合のは

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

だからdf [seq(1、NROW(df)、by = n)、]' – MySchizoBuddy

+0

これは正しいです –

7

をそれをテストしてみましょう機能を作成することができます...

を3のモジュロとしてここで繰り返すことでn番目の列を選択します(希望通りn番目を選択します)

> 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 

など...ここに行をサブセット化のための< -nrow(DF)Cスワップ..

関連する問題