Как вызвать несколько переменных в цикле for в R? - PullRequest
0 голосов
/ 11 июня 2018

У меня есть несколько CSV-файлов данных, хранящихся в каталоге, и мне нужно импортировать все из них в R.

Каждый .csv имеет два столбца при импорте в R. Однако 1001-я строка нуждаетсябыть сохраненным как отдельная переменная для каждого из файлов .csv (это соответствует ожидаемому значению, которое было сохранено здесь во время моделирования; я хочу, чтобы оно было вне основных данных).

Пока у меня есть следующий код для импорта моих файлов .csv в виде матриц.

#Load all .csv in directory into list
dataFiles <- list.files(pattern="*.csv")

for(i in dataFiles) {
   #read all of the csv files
   name <- gsub("-",".",i)
   name <- gsub(".csv","",name)  
   i <- paste(".\\",i,sep="")
   assign(name,read.csv(i, header=T))
}

Это создает несколько матриц с соглашением об именах "sim_data_L_mu", где L и mu являются параметрами измоделирование.Как я могу удалить 1001-ую строку (которая имеет номер в первом столбце, а второй столбец является нулевым) из каждой матрицы и сохранить ее как переменную с именем "sim_data_L_mu_EV"?Основная проблема у меня заключается в том, что я не знаю, как вызвать все вновь созданные матрицы в моем цикле for.

1 Ответ

0 голосов
/ 11 июня 2018

Не удалось опубликовать длинный код в комментариях, поэтому пишу здесь:

# Use dialog to select folder
# Full names are required to access files that are not in the current working directory 
file_list <- list.files(path = choose.dir(), pattern = "*.csv", full.names = T)
big_list <- lapply(file_list, function(z){
  df <- read.csv(z)
  scalar <- df[1000,1]
  return(list(df, scalar))
})

Чтобы получить доступ к скалярному значению из третьего файла, вы можете использовать

big_list[[3]][2]

Элементы вbig_list следуйте порядку file_list, чтобы вы всегда знали, из какого файла получены данные.

Если вы используете data.table::fread() вместо read.csv, вы можете поиграть с назначением имен столбцов, выбором строк / столбцов для чтения и т. Д. Это также значительно быстрее для больших файлов данных.

Надеюсь, это поможет!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...