To remove column from dataframe in R, you can use four different ways:
The following methods show how you can do it with syntax.
Method 1: Use subset() with Negative Index
subset(df, select = -n)
Method 2: Use subset() with Column Name
subset(df, select = -column_name)
Method 3: Use Indexing Operator
df[, !names(df) %in% c('column_name')]
Method 4: Use select() Function
library(dplyr)
df %>% select(-column_name)
The following examples show how to remove column from dataframe in R.
Using subset() with Negative Index
Let’s see how we can use subset() function in R:
# Create dataframe
df <- data.frame(Start_date=as.Date(c("2000-05-21","1998-03-28","2001-01-19","2003-04-27","2004-11-26","2008-11-25")),
                 Machine_name = c("Machine1","Machine2","Machine3","Machine4","Machine5","Machine6"),
                 Value = c(108,120,135,95,98,105),Reading= c(110,97,91,89,80,85))
# Remove column from dataframe
df <- subset(df,select = -3)
# Print dataframe 
print(df)
Output:
  Start_date Machine_name Reading
1 2000-05-21     Machine1     110
2 1998-03-28     Machine2      97
3 2001-01-19     Machine3      91
4 2003-04-27     Machine4      89
5 2004-11-26     Machine5      80
6 2008-11-25     Machine6      85
Here the output shows dataframe from which Value column is removed using negative index.
Using subset() with Column Name
Let’s see how we can use subset() function to remove column:
# Create dataframe
df <- data.frame(Start_date=as.Date(c("2000-05-21","1998-03-28","2001-01-19","2003-04-27","2004-11-26","2008-11-25")),
                 Machine_name = c("Machine1","Machine2","Machine3","Machine4","Machine5","Machine6"),
                 Value = c(108,120,135,95,98,105),Reading= c(110,97,91,89,80,85))
# Remove column from dataframe
df <- subset(df,select = -Reading)
# Print dataframe 
print(df)
Output:
  Start_date Machine_name Value
1 2000-05-21     Machine1   108
2 1998-03-28     Machine2   120
3 2001-01-19     Machine3   135
4 2003-04-27     Machine4    95
5 2004-11-26     Machine5    98
6 2008-11-25     Machine6   105
Here the output shows dataframe from which Reading column is removed.
Using Indexing Operator
Let’s see how we can use indexing operator to remove column:
# Create dataframe
df <- data.frame(Start_date=as.Date(c("2000-05-21","1998-03-28","2001-01-19","2003-04-27","2004-11-26","2008-11-25")),
                 Machine_name = c("Machine1","Machine2","Machine3","Machine4","Machine5","Machine6"),
                 Value = c(108,120,135,95,98,105),Reading= c(110,97,91,89,80,85))
# Remove column from dataframe
new_df <- df[, !names(df) %in% c('Value')]  
# Show new dataframe
print(new_df)
Output:
  Start_date Machine_name Reading
1 2000-05-21     Machine1     110
2 1998-03-28     Machine2      97
3 2001-01-19     Machine3      91
4 2003-04-27     Machine4      89
5 2004-11-26     Machine5      80
6 2008-11-25     Machine6      85
Here in the output it shows new dataframe which created from dataframe df but we removed Value column.
Using select() Function
Let’s see how to use select() function in R:
library(dplyr)
# Create dataframe
df <- data.frame(Start_date=as.Date(c("2000-05-21","1998-03-28","2001-01-19","2003-04-27","2004-11-26","2008-11-25")),
                 Machine_name = c("Machine1","Machine2","Machine3","Machine4","Machine5","Machine6"),
                 Value = c(108,120,135,95,98,105),Reading= c(110,97,91,89,80,85))
# Remove column from dataframe
new_df <- df %>% select(-Reading)
# Print dataframe 
print(df)
Output:
  Start_date Machine_name Value
1 2000-05-21     Machine1   108
2 1998-03-28     Machine2   120
3 2001-01-19     Machine3   135
4 2003-04-27     Machine4    95
5 2004-11-26     Machine5    98
6 2008-11-25     Machine6   105
Here in the output it shows new dataframe which created from dataframe df but we removed Reading column.