Я работаю над назначением, а функция, которую я должен написать, имеет 3 аргумента: каталог, содержащий таблицы, подлежащие оценке, столбец, который будет оцениваться по функции и последовательности 1: x, где x - количество файлов в каталоге.Как использовать каталог в качестве аргумента для функции в R
Мое замешательство довольно фундаментально, поскольку я не уверен, что каталог, с которым должна работать функция, должен быть установлен в мой рабочий каталог или если каталог должен иметь весь путь к файлу.
В идеале я хотел бы вызвать функцию pm («имя папки», «colname», 4: 112 ## random seq) и всякая математика, которая происходит в этой функции.
К сожалению, мое знание синтаксиса немного отсутствует, и на данный момент я пытаюсь изменить последовательность ввода пользователем в соответствии с именами файлов, поэтому я могу использовать скрипт read.csv для чтения только в таблицах которые соответствуют последовательности, определенной пользователем.
pm<-function(directory, sex, id = 1:440){ ##sex is the col arg M/F
i<-id
j<-as.character(i)
j[nchar(j)==1]<-paste("00", j[nchar(j)==1], sep="")
j[nchar(j)==2]<-paste("0", j[nchar(j)==2], sep="")
j[nchar(j)==3]<-paste(j[nchar(j)==3],".csv", sep="")
print(j)
}
Это мой текущий план, чтобы преобразовать ввод пользователя с 1: 400 последовательности в вектор символов и использовать его для чтения конкретных таблиц мне нужно. Есть ли более эффективный способ сделать это?
Возможно, было бы проще использовать 'dir (directory, full.names = TRUE)', чтобы получить все полные пути к файлам. И да, рабочий каталог должен быть установлен в любом месте каталога (проще всего). –
Альтернативой хорошему предложению Ричарда С. является выполнение (внутри вашей функции) 'foo <-read.csv (paste0 (directory, filename))' или эквивалент после того, как вы собрали имена файлов в качестве символьных строк. –
Должен ли я читать read.csv таблицы в R, независимо от того, какой путь к аргументу каталога функции? Если да, то как пропускать таблицы, которые не находятся в последовательности, которую вводит пользователь? – efridge