Я читаю файлы csv из определенной папки, все они имеют одинаковую структуру. Кроме того, я создал функцию, которая добавляет определенное значение в dataFrame.Применение функции ко всем файлам csv из определенной папки
Я создал «чтение папок» - часть, а также создал функцию. Однако теперь мне нужно соединить эти два друг с другом. Это где я имею свои проблемы:
Вот мой код:
addValue <- function(valueToAdd, df.file, writterPath) {
df.file$result <- df.file$Value + valueToAdd
x <- x + 1
df.file <- as.data.frame(do.call(cbind, df.file))
fullFilePath <- paste(writterPath, x , "myFile.csv", sep="")
write.csv(as.data.frame(df.file), fullFilePath)
}
#1.reading R files
path <- "C:/Users/RFiles/files/"
files <- list.files(path=path, pattern="*.csv")
for(file in files)
{
perpos <- which(strsplit(file, "")[[1]]==".")
assign(
gsub(" ","",substr(file, 1, perpos-1)),
read.csv(paste(path,file,sep="")))
}
#2.appyling function
writterPath <- "C:/Users/RFiles/files/results/"
addValue(2, sys, writterPath)
Как применить функцию addValue()
в моей #1.reading R files
конструкции? Любые рекомендации?
Я ценю ваши ответы!
UPDATE
При попытке из примера кода, я получаю:
+ }
+ ## If you really need to change filenames with numbers,
+ newfname <- file.path(npath, paste0(x, basename(fname)))
+ ## otherwise just use `file.path(npath, basename(fname))`.
+
+ ## (4) Write back to a different file location:
+ write.csv(newdat, file = newfname, row.names = FALSE)
+ }
Error in `$<-.data.frame`(`*tmp*`, "results", value = numeric(0)) :
replacement has 0 rows, data has 11
Любые предложения?
Какие у вас проблемы? (Вам нужно 'full.names = TRUE' в вашем вызове' list.files() '?) – r2evans
@ r2evans Thx для вашего ответа! Моя проблема в том, что я не знаю, как применить мою функцию 'addValue()' к моей конструкции '1.reading R files'? Атм эти двое полностью отделены друг от друга ... – mrquad