0

Using column name as a variable how to drop an entire column from a data.frame in R. For example if I am given this data.frame:

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

it shows error undefined column name selected

1 Answers1

0

Lots of ways:

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"

This:

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

or:

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

or:

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

Plus lots more here: Drop data frame columns by name

Community
  • 1
  • 1
hrbrmstr
  • 77,368
  • 11
  • 139
  • 205