Home > database >  R function that selects certain columns from a dataframe
R function that selects certain columns from a dataframe

Time:08-24

I am trying to figure out how to write a function in R than can select specific columns from a dataframe(df) for subsetting:

Essentially I have df with columns or colnames : count_A.x, count_B.x, count_C.x, count_A.y, count_B.y, count_C.y.

I would ideally like a function where I can select both "count_A.x" and "count_A.y" columns by simply specifying count_A in function argument.

I tried the following:

e.g. pull_columns2 <- function(df,count_char){
        df_subset<- df%>% select(,c(count_char.x, count_char.y))
}

Unfortunately when I run the above code [i.e., pull_columns2(df, count_A)] the following code it rightfully says that column count_char.x does not exist and does not "convert" count_char.x to count_A
pull_columns2(df, count_A) 

CodePudding user response:

  • We can use
pull_columns2 <- function(df,count_char){
    df_subset<- df %>% select(contains(count_char))
    df_subset
}

#> then use it as follows

df %>% pull_columns2("count_A")

CodePudding user response:

Try



select_func = function(df, pattern){
  
  return(df[colnames(df)[which(grepl(pattern, colnames(df)))]])
}


df = data.frame("aaa" = 1:10, "aab" = 1:10, "bb" = 1:10, "ca" = 1:10)

select_func(df,"b")
  • Related