2016-09-20 20 views
0

列名を変数として使用すると、R内のdata.frameから列全体を削除する方法などがあります。たとえば、 .frame:それは選択されたエラー未定義の列名を示し列名を変数として使用するR内のdata.frameから列全体を削除する方法

>data<-data.frame(x=1:10,y=20:30,z=30:40) 
>name="x" 
>data$name<-NULL 

方法の

+1

使用は、 '[['の代わりに '$'とは '読みExtract'?。 – joran

+0

コードが正しく実行されません。 yとzはxより多くの観測値を持つ。 – lmo

+0

または[データフレームに名前で列をドロップする方法](http://stackoverflow.com/questions/5234117/how-to-drop-columns-by-name-in-a-data-frame) –

答えて

0

ロット:

df <- data.frame(x=1:10, y=21:30, z=31:40) 

str(df) 
## 'data.frame': 10 obs. of 3 variables: 
## $ x: int 1 2 3 4 5 6 7 8 9 10 
## $ y: int 21 22 23 24 25 26 27 28 29 30 
## $ z: int 31 32 33 34 35 36 37 38 39 40 

col_name <- "x" 

この:

df <- data.frame(x=1:10, y=21:30, z=31:40) 

df[,col_name] <- NULL 

str(df) 
## 'data.frame': 10 obs. of 2 variables: 
## $ y: int 21 22 23 24 25 26 27 28 29 30 
## $ z: int 31 32 33 34 35 36 37 38 39 40 

か:

df <- data.frame(x=1:10, y=21:30, z=31:40) 

df[[col_name]] <- NULL 

str(df) 
## 'data.frame': 10 obs. of 2 variables: 
## $ y: int 21 22 23 24 25 26 27 28 29 30 
## $ z: int 31 32 33 34 35 36 37 38 39 40 

か:ここ

df <- data.frame(x=1:10, y=21:30, z=31:40) 

df <- df[,setdiff(colnames(df), col_name)] 

str(df) 
## 'data.frame': 10 obs. of 2 variables: 
## $ y: int 21 22 23 24 25 26 27 28 29 30 
## $ z: int 31 32 33 34 35 36 37 38 39 40 

プラスたくさんより:Drop data frame columns by name

関連する問題