Ваши комментарии, хотя в настоящее время и не являются вашим вопросом, указывают на то, что вы ожидаете запустить свой код в рабочем каталоге, который содержит некоторое количество подкаталогов (lecture01, Lection02 и т. д.), каждый из которых содержит подкаталог «метки», который, в свою очередь, содержит файл data.csv. Если это так, и ваша цель — прочитать csv из каждого подкаталога, то у вас есть несколько вариантов в зависимости от оставшихся деталей.
Случай 1. Укажите имена каталогов верхнего уровня напрямую, если вы знаете их все и они потенциально уникальны:
dirs <- c("lecture01", "lecture02", "some_other_dir")
paths <- file.path(dirs, "marks/data.csv")
Случай 2. Создайте имена каталогов верхнего уровня, например если все они начинаются с «лекции», за которой следует двузначное число, и вы можете (или специально хотите) указать числовой диапазон, например. 01 по 15:
dirs <- sprintf("lecture%02s", 1:15)
paths <- file.path(dirs, "marks/data.csv")
Случай 3. Определите имена каталогов верхнего уровня, сопоставив шаблон, например если вы хотите читать данные из каждого каталога, начиная со строки «лекция»:
matched.names <- list.files(".", pattern="^lecture")
dirs <- matched.names[file.info(matched.names)$isdir]
paths <- file.path(dirs, "marks/data.csv")
Если у вас есть вектор путей, я бы, вероятно, использовал lapply
для чтения данных в список для дальнейшей обработки, называя каждый из них именем базового каталога:
csv.data <- lapply(paths, read.csv)
names(csv.data) <- dirs
В качестве альтернативы, если любая обработка, которую вы выполняете для каждого отдельного CSV, выполняется только для побочных эффектов, таких как изменение данных и запись новой версии, и особенно если вы никогда не хотите, чтобы все они были в памяти одновременно раз, затем используйте цикл.
Если этот ответ не соответствует действительности, даже если это не так, было бы здорово, если бы вы могли уточнить вопрос соответствующим образом.
person
regetz
schedule
27.02.2013
setwd
уже был запущен, то простой запускread.csv("subfolder/data.csv")
приведет вас в нужное место независимо от того, на какой машине вы находитесь. Я не понимаю, в чем проблема. - person joran   schedule 27.02.2013