Если вы просто читаете из списка файлов, то в кадрах данных нет : имена: [[1]] и [[2]], которые вы видите, являются индексами списка. Если вы хотите выполнять операции, которые различаются в зависимости от data.frame, это будет довольно уродливо. Лучшее, что вы, вероятно, можете сделать что-то вроде:
myData <- lapply(fileNames, function(x){
holding <- read.csv(x, stringsAsFactors = FALSE)
holding$periodicity <- gsub("\\.csv", "", x)
return(holding)
})
results <- lapply(myDate, myFUN)
... где решения дерева в myFun теперь может работать на основе значений в колонке «периодичность» каждый data.frame в. Это уродливый взлом (и не будет самой быстрой: каждый раз, когда вы изменяете такой файл данных, вам нужно скопировать его, что дорого).
В качестве альтернативы вы можете посмотреть что-то вроде Map
или mapply
(подумайте, но он принимает несколько входных данных) и игнорирует проблему присвоения имен переменным; вместо этого вы передадите как myData, так и имена, извлеченные с помощью вызова gsub, в mapply, и в итоге получите функцию, которая должна работать, как df1, так и имя «df1».
Но, честно говоря, мой совет будет заключаться в том, что вы пытаетесь решить проблему слишком далеко по трубопроводу. Хотя это будет , работа, если есть данные, на которые вы зависите, чтобы решить, какой анализ выполняется, вероятно, он должен быть включен в файл, чтобы его можно было читать, а не включать в имя файла. Poke, кто производит файлы и просит их быть разумными, p
Зачем вам нужны имена? –
Существует некоторая периодичность, встроенная в имя файла, который я использую для создания столбца Logicals. Например, для df1 я делаю каждый i + 1 row = TRUE. Для df2 каждый i + 2 и т. Д. – froy
Пример имени файла? –