Я хотел бы использовать значение в каждой строке одного столбца кадра данных (имена файлов) в качестве аргумента в функции. Эта функция импортирует данные из файла .ods с соответствующим именем файла и извлекает информацию в новый фрейм данных.
Я хотел бы применить функцию к каждому имени файла в таблице «имена файлов», создавая таким образом 50 кадров данных. Я хочу добавить каждый из этих фреймов данных, я представляю, используя rbind, чтобы получить один фрейм данных в конце.
Я написал его для одного имени файла, но изо всех сил пытаюсь понять, как писать это как функция, которая повторяется итеративно по списку имен файлов, а затем добавляет результирующие кадры данных.
Я написал пример ниже, любая помощь очень с благодарностью получена!
map <- data.frame(well = c("A01", "A02", "A03", "B01", "B02", "B03", "C01", "C02", "C03", "A01", "A02", "A03", "B01", "B02", "B03", "C01", "C02", "C03"),
plate = c(1,1,1,1,1,1,1,1,1,2,2,2,2,2,2,2,2,2))
filenames <- data.frame(filenames = c("file1", "file2", "file3"),
plate = c(1, 1, 2))
firstdatetime <- as.POSIXct("2020-03-26 07:56:20 GMT")
activefile <- as.vector(filenames[1,1])
data <- data.frame(read.ods(activefile))
###for the purposes of this example, a sample data file is created below
data <- data.frame(datetime = "2020-03-26 13:04:38 GMT", one = c(2,4,6), two = c(4, 6, 6), three = c(5, 5, 2))
###
plate <- as.numeric(filenames$plate[match(activefile, filenames$filenames)])
datetime <- as.POSIXct(data$datetime[1])
time <- as.numeric(difftime(strptime(datetime, "%Y-%m-%d %H:%M:%S"),
strptime(firstdatetime, "%Y-%m-%d %H:%M:%S")))
temp <- plate
df <- subset(map, plate == temp)
df$filename <- activefile
df$time <- time
a570 <- data.frame(data[,-1])
a570 <- as.vector(t(a570))
df$a570 <- a570
###
#then repeat this for each filename in 'filenames', adding each dataframe to the bottom of the one before. The final output would be one big data frame.