Создать несколько фреймов данных и столбцов с циклами - PullRequest
0 голосов
/ 05 октября 2018

Заранее спасибо за вашу помощь, я действительно борюсь здесь.давайте перейдем сразу.

ЧТО Я ТАК ДАЛЕЕ

В настоящее время у меня есть данные о погоде для использования с DSSAT (= имитационная модель роста урожая).Его зовут REPY0001.WTH.Это выглядит так:

Данные о погоде для DSSAT:

Weather Data for DSSAT

Мне удалось загрузить его в R с помощью следующей команды:

temp0 <- read.csv("Data/Wetterdaten/REPY0001.WTH", sep = "", header = FALSE)

Тогда это выглядит в R Вот так:

REPY0001.WTH в RStudio:

REPY0001.WTH in RStudio

iЯ уже экспортировал его из RStudio и использовал его в DSSAT, который работает, когда я использую 3x пробелов в качестве разделителей со следующей командой:

write.table(temp,file = "Data/Wetterdaten/test6.WTH", row.names = FALSE, quote = FALSE, col.names = FALSE, sep = "   ")

С 1 или 2 пробелами в качестве DSSAT разделителя не смог прочитатьэто правильно.Я предполагаю, что существуют жесткие ограничения на то, как должны выглядеть файлы, чтобы DSSAT мог их читать.

ЧТО Я ХОЧУ ПОЛУЧИТЬ В РЕЗУЛЬТАТЕ

В конце я хочу получить 99 Выходных файлов от REPY0001.WTH до REPY9901.WTH.В этих файлах первая колонка, начиная с строки 5, должна измениться или соответствовать номерам в имени файла.

Итак, файл REPY 50 01.WTH должен иметь такую ​​структуру:

* ПОГОДНЫЕ ДАННЫЕ: REPY

@ INSI LAT LONGELEV TAV AMP REFHT WYDHT REPY 52.190 8.195 300 9.4 8.1 -99.0 -99.0 @DATE SRAD TMAX TMIN RAIN DEWP WIND PAR EVAP RHUM
50 225 18,2 29,0 16,3 0,0
50 226 15,5 24,2 14,0 0,0
50 227 22,1 25,1 12,6 0,0
50 228 22,0 24,1 10,4 0,0

но после 50 365 День года 365 достигнут, и следующий столбец должен быть

51 001 ... так как он изменился с 50 года на 51.

и в файле REPY 51 01.WTH столбец @DATE должен начинаться с 51 225 ... (он обозначает последние две цифры года, поэтому год 1956is -> REPY 56 и @DATE 56 225, ...)

На втором шаге я хочу изменить значение одного столбца в выходном файле 99файлы.Первой идеей было бы умножить столбец «Дождь» на 1,0 [i].Например:

REPY0001.WTH $ Дождь * 1,00

REPY0101.WTH $ Дождь * 1,01

REPY0201.WTH $ Дождь * 1,02

REPY0301.WTH $ Дождь * 1.03

REPY0401.WTH $ Дождь * 1.04

... Так, например, с каждым годом количество осадков увеличивается на 1%.

Но сейчас это действительно сложно, потому что, когда я читаю Файлы в R, это Список, и когда Я ВЫХОДИТ из Файлов, они должны иметь правильную структуру для DSSAT, начиная с 5 строк«Заголовок».

КАК ЭТО СДЕЛАТЬ?

Итак, мой вопрос: как мне получить 99 выходных файлов, как я могу изменить столбцы и как я могу это сделать, не разбиваяструктура, поэтому DSSAT все еще может читать ее потом.

Я много чего перепробовал, но пока ничего не получалось.

Я был бы очень благодарен, если бы здесь был кто-то, кто может помочь мне найти решение.

...