'Rename column within function in r using dplyr

In this case, I have a loop that triggers a function, which in turn triggers a function that collects the data.

One weird thing, is I cannot rename the columns in the dataset created - d. Bascially I need standardised names such that I can pass different variables, and as a result, I need to rename the columns during the dplyr transformation. The problem is here: %>% rename(Con = 1, DV = 2). In the dataset I have selected, I want to label the first column con, and the second column DV, such that I can pass this into the CollectDEffect function to run the cohensD analysis. All of this works when I run line by line, but I want to run the function by all the DVs and create a table, hence why I need to get this working within the loop.

# Function to run analyses and create the dataframe with output
CD_EE_DF <- data.frame("Test" = character())

CollectDEffect = function(cd, d){
  excess <- data.frame("Test" = cd, 
                       "Sample Size"  = nrow(d),
                       "Original Cohen's d" = cohensD(d$DV ~ d$Con))
  
  CD_EE_DF <- rbind(CD_EE_DF, excess)
  return(CD_EE_DF)
}

# Data transformation, where the error is
CollectDEffect_Trigger = function(DVTest){
  # Problem occurs here with the rename 
  d <- df %>%  filter(Gender == "Female", Target_Gender != "") %>% select(Target_Gender, DVTest) %>% rename(Con = 1, DV = 2) %>% na.omit()
  CD_EE_DF <- CollectDEffect(paste0("A_",DVTest),d) 
}

# Loop that triggers all of the analyses

vec_dv <- c("Status", "warmth")

for (DVTest in vec_dv) {
  CD_EE_DF <- CollectDEffect_Trigger(DVTest)
}


Sources

This article follows the attribution requirements of Stack Overflow and is licensed under CC BY-SA 3.0.

Source: Stack Overflow

Solution Source