manu p
manu p

Reputation: 995

Check column names in R and create a dummy column

I have written a function to check if there exists a column in dataframe. If there is no column then create a dummy column

add_Column <- function(df, col_name){
  if("col_name" %in% colnames(df)) {
    NULL
  } else{
    df$col_name <- ""
  }
}

So when I check below,

add_Column(iris, "new")

Expected output

head(iris)
  Sepal.Length Sepal.Width Petal.Length Petal.Width Species  new
1          5.1         3.5          1.4         0.2  setosa  
2          4.9         3.0          1.4         0.2  setosa  
3          4.7         3.2          1.3         0.2  setosa  
4          4.6         3.1          1.5         0.2  setosa  
5          5.0         3.6          1.4         0.2  setosa  
6          5.4         3.9          1.7         0.4  setosa

Upvotes: 0

Views: 92

Answers (1)

Quinten
Quinten

Reputation: 41533

First, add return and use [] to assign the "new" column name like this:

add_Column <- function(df, col_name){
  if("col_name" %in% colnames(df)) {
    NULL
  } else{
    df[col_name] <- ""
  }
  return(df)
}

add_Column(head(iris), "new")
#>   Sepal.Length Sepal.Width Petal.Length Petal.Width Species new
#> 1          5.1         3.5          1.4         0.2  setosa    
#> 2          4.9         3.0          1.4         0.2  setosa    
#> 3          4.7         3.2          1.3         0.2  setosa    
#> 4          4.6         3.1          1.5         0.2  setosa    
#> 5          5.0         3.6          1.4         0.2  setosa    
#> 6          5.4         3.9          1.7         0.4  setosa

Created on 2022-08-12 by the reprex package (v2.0.1)

Upvotes: 1

Related Questions