How can I drop columns by name in a data frame

653    Asked by LiamDyer in Java , Asked on Jul 26, 2021

 I want to drop column r in the data frame. Please help me with a solution.

Answered by Sam prachi

We can Drop Columns by name in a data frame using the following two methods:


Create a data frame

The following code creates a sample data frame which we will use for demonstration.

set.seed(556)

    mydata <- data.frame(m=letters[1:5], x=runif(5,10,50), y=sample(5), z=rnorm(5))

# Delete column by name

Method I :

One of the easiest ways to drop columns is by using the subset() function.

The following code tells R to drop variables x and z.

The '-' sign indicates dropping variables.

Note: Don't specify the variable names in quotes when using the subset() function.

df = subset(mydata, select = -c(x,z) )
> mydata
  m x y z
1 a 33.83910 2 -1.02569136
2 b 23.50851 3 0.59367584
3 c 22.91966 1 -0.06436851
4 d 33.18065 4 -0.04719129
5 e 13.79128 5 -1.80186137
> df
  m y
1 a 2
2 b 3
3 c 1
4 d 4
5 e 5
Method II :

The function names() returns all the column names and the '!' sign indicates negation.

drop <- c("x","z") #we are creating a character vector named drop in which we are storing column names x and z

df = mydata[,!(names(mydata) %in% drop)] #Selecting all the variables except the column names specified in the vector drop. The '!' sign indicates negation.

> df

  m y

1 a 2

2 b 3

3 c 1

4 d 4

5 e 5

It can also be written like : df = mydata[,!(names(mydata) %in% c("x","z"))]

> set.seed(556)

> mydata <- data.frame(m=letters[1:5], x=runif(5,10,50), y=sample(5), z=rnorm(5))

> df = mydata[,!(names(mydata) %in% c("x","z"))]

> df

  m y

1 a 2

2 b 3

3 c 1

4 d 4

5 e 5



Your Answer

Interviews

Parent Categories