Как в R я могу получить доступ к нумерованным наборам данных с помощью переменной цикла?

#r

#r

Вопрос:

Может кто-нибудь, пожалуйста, сказать мне, как в R я могу получить доступ к нумерованным наборам данных с помощью переменной цикла? Итак, если у меня есть длинный список файлов, в каждом из которых мне нужно найти все места, где определенное значение находится во втором столбце, и взять соответствующее значение в той же строке в третьем столбце и перечислить их все в одном файле, как я могу это сделать? Файлы называются по названию папки, дате и времени соответственно, таким образом, «name_0619_0123». На каждый день приходится одинаковое количество файлов, и они находятся в разное время каждый день. Поэтому, если есть команда, которая может каким-то образом позволить мне получить доступ к файлу таким образом, чтобы я мог иметь переменную (зависящую от переменной подсчета циклов) в строке, которую я указываю для имени файла в команде, я могу получить доступ к другому файлу для каждой итерации цикла.

Пожалуйста, любые идеи

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

Ответ №1:

Вероятно, есть много способов сделать это в R:

Вы можете использовать сценарий командной строки (см. Документацию R).

т. е.

 R CMD BATCH "--args arg1 arg2" foo.R amp;
 

Где foo.R находится ваш R-скрипт, и args это могут быть переменные цикла, которые вас интересуют.

Другой способ сделать это — использовать регулярные выражения для анализа информации из имен ваших файлов.

Если вы приведете более конкретный пример, я смогу показать вам более конкретный код.

Ответ №2:

Вот несколько рекомендаций, если вы можете объединить те файлы, которые вам нужно обработать, либо с шаблоном, либо собирая их все.

Вы можете сгенерировать список файлов с list.files помощью, прочитать их за один раз с lapply помощью , read.csv , и извлечь то, что вам нужно, в a data.frame с помощью одной строки. Затем, используя do.call , rbind , и ваш список data.frames, вы можете объединить все в один data.frame, даже не записывая for явно.