Невозможно найти решение моей проблемы.
У меня есть набор данных .txt файлов, названный в честь времени их наблюдения, например: 2018-07-04-04-53.txt. Все эти .txt-файлы хранятся в одной папке.
Моя цель - создать новый data.frame, содержащий информацию из этих файлов .txt.
Сначала я собираю имена файлов в папке:
nam = list.files(path = "C:/Users/.../data")
Затем я создаю вектор, содержащий целые числа от 1: длина переменной
nrv = c(1:length(nam))
После этого я готовлю свой «фиктивный» data.frame, который я хочу заполнить следующими вложенными циклами. (Я пытался заполнить data.frame с помощью rbind, но он всегда удалял драгоценно заполненные данные)
nrnam = length(nam)
data = data.frame("year"=c(1:nrnam), "month"=c(1:nrnam), "day"=c(1:nrnam), "hour"=c(1:nrnam), "min"=c(1:nrnam))
Идея заключается в том, чтобы создать df, похожую на матрицу, но с заголовком (мои исходные входные данные сильно сжаты, так как их необходимо транспортировать через iridium)
Это цикл for, который я пытался использовать, чтобы заполнить правильные даты наблюдения.
for (i in nam) {
for (ii in nrv) {
# Einlesen des Datums aus dem Namen der Datei
yr = substr(i,1,4)
mo = substr(i,6,7)
da = substr(i,9,10)
hr = substr(i,12,13)
mn = substr(i,15,16)
data$year[ii] = yr
data$month[ii] = mo
data$day[ii] = da
data$hour[ii] = hr
data$min [ii] = mn
}
}
Как пример для вас, ребята: «i» содержит 41 символ (2018-07-04-04-53.txt до 2018-07-12-10-51.txt), «ii» - это 41 файл в итого, поэтому nrnam должно быть целым числом 1: 41.
Моя основная идея была:
1) go to file 1 (here 2018-07-04-04-53.txt)
2) gather the observation date from file name
3) place it at row [ii] in my df.
4) do it for all 41 files...
Моя проблема: цикл заполняет правильную дату из последнего файла .txt для всех 41 строки. Так что все одинаково.
Заранее большое спасибо за помощь!