'select a value from several dataframes (file.csv) and merge them into a new dataframe with R

Maybe I'm asking for something too simple, but I can't solve this problem. I want to create a script that recursively enters the folders present in a base_folder, opens a specific file with a name that is always the same (w3nu) and selects a precise value (I need to select the email of the subject belonging to the Response column, filtering for the corresponding heat in the Question.Key column).

I want my script to repeat itself in the same way for all the folders present in the base folder.

Finally, I want to merge all the emails into a new dataframe.

I have created this script but it does not work.

 library(tidyverse)

base_folder <- "data/raw/exp_1_participants/sbj"

files <- list.files(base_folder, recursive = TRUE, full.names = TRUE)
demo_email <- files[str_detect(files, "w3nu")]

email_extraction <- function(demo_email){
  
  demo_email <- read.csv(task,header = T)
  demo_email <- demo_email %>%
    filter(Question.Key == "respondent-email") %>%
    select(Response)
}
  
  email_list_jolly <- vector(mode = "list", length = length(demo_email))
  
  for(i in 1:length(email_list_jolly)){
email_list_jolly[[i]] <- email_extraction(demo_email[i])
  }
  
  email_list_stud <- cbind(email_list_jolly)
  
  write.csv(email_list_stud, 'data/cleaned/email_list_stud.csv')

can you help me? thanks



Solution 1:[1]

From comments:

Looks like you haven't defined task within the script shown above, but you're telling read.csv to find it. Did you mean to pass demo_email to read.csv instead? task is probably a random vector in your workspace.

Sources

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

Source: Stack Overflow

Solution Source
Solution 1 Dubukay