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
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
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