Кто-то отправил мне .txt-файл, который не имеет заголовка. Кроме того, нет структуры, поэтому все строки следуют за предыдущей в той же строке файла.R: Прочитать файл без заголовка
Единственное, что я знаю, это то, что каждые 16 элементов (разделенных символом «,») должны иметь одну строку в конечном результате, потому что для каждого графика имеется 16 переменных или столбцов. Каждая строка необработанного файла содержит все измерения для 16 переменных для 438 разных графиков за один день. В общем случае необработанный файл содержит 4015 строк (дней), из которых 438x16 единиц в каждой строке я предполагаю (могут быть НС).
мне удалось прочитать файл как:
x <- readLines("Data/meteodata.dat")
x <- as.data.frame(matrix(as.numeric(unlist(strsplit(x, ","))), ncol = 16, byrow = TRUE))
Однако, теперь я должен был бы агрегировать переменные группировки по сюжету, так что вместо такого огромного набора данных, я в конечном итоге только 438 строк и 16 столбцы, содержащие средние значения для каждой переменной и графика. Проблема заключается в том, что столбцы не содержат идентификатора для каждого заглавного поля. Ключ в том, что этот грязный набор данных был создан кем-то другим из набора данных (у) с 438 строк (по одному на участке), который действительно содержит сюжетные этикетки, и в том же порядке:
> nrow(y)
[1] 438
> head(y)
CODE_PLOT CODE_COUNTRY
1 1 1
2 1 12
3 1 14
4 1 15
5 1 5
6 1 50
Следовательно, каждая строка КОРРЕСПОНДЕНТЫ MESSY FILE CODE_COUNTRY И CODE_PLOT «Y» В ОДНОМ ЗАКАЗЕ.
Спасибо и простите за такое абстрактное сообщение.
Пример файла прежде чем он сможет прочитать:
48.25,4.25,1.989e+07,2.6,5.89,1.28,0.02,0,0,0.42,3575,0,-0.4,2.6,2.57,6.48,50,6,1.989e+07,3.55,5.42,2.31,0.42,0,0,0.15,2420,0,0.27,3.55,2,7.8
Пример набора данных после того, как в состоянии прочитать:
> head(test)
lat long date temp.mean temp.max temp.min precip E0 ES0 ET0 radiation snow.depth
1 48.25 4.25 19890000 2.60 5.89 1.28 0.02 0.00 0.00 0.42 3575 0.00
2 50 6 19890000 3.55 5.42 2.31 0.42 0.00 0.00 0.15 2420 0.00
3 47.75 16.25 19890000 0.67 3.98 -0.92 0.63 0.08 0.00 0.53 5061 0.02
4 69.5 29 19890000 -13.63 -10.06 -20.20 0.10 0.00 0.00 0.02 70 16.56
5 41.75 13.5 19890000 2.05 8.79 -1.72 0.00 0.20 0.06 0.54 8206 0.10
6 47 8.75 19890000 -4.29 2.62 -7.97 0.00 0.00 0.00 0.21 7403 5.45
water.balance temp.mean2 wind P_hPa
1 -0.40 2.60 2.57 6.48
2 0.27 3.55 2.00 7.80
3 0.10 0.67 3.63 5.17
4 0.08 -13.63 3.65 1.78
5 -0.54 2.05 1.58 6.18
6 -0.21 -4.29 1.22 2.87
Вам нужно будет вручную определить, какая строка этих данных принадлежит какому сюжету. Затем вы можете «агрегировать» и использовать «cbind» или «merge» для объединения с другими данными. – Thomas
У меня 438 сюжетов, вся идея этого - автоматизация процесса. Я думаю, что ключ состоит в том, что каждая строка файла соответствует 438 графикам в том же порядке, что и в другом наборе данных, который я хочу связать с этим, и содержит метки графиков. Возможно, если бы я мог составить список для каждой строки файла и cbind эту строку с чистым набором данных ... –