код r, вычисляющий только одно значение, несмотря на строки - PullRequest
0 голосов
/ 24 апреля 2019

Я пытаюсь кодировать в r, чтобы найти соответствующие значения стока, где количество осадков превышает определенный уровень.Проблема в том, что мой код, либо принимает только один элемент, либо не сохраняет никаких итераций.Я продолжал получать сообщение об ошибке, что длина аргумента> 1, используется только один элемент управления. Он продолжает печатать все значения в коде или просто сравнивать с последним значением.Я хочу проверить условие строка за строкой во фрейме данных

Я пробовал цикл, он должен быть для цикла, так как я не могу сосредоточиться только на встроенной функции.Даже если я изменю свои значения, он будет продолжать печатать все значения в коде

`

for(row in 1:nrow(post)){
 Rainfall <- post[row,"Runoff"]
 Date <- post[row, "Day"]
 if (Rainfall.m3[nrow(post)] > 1000){
 print(paste("on", Day,"runoff was",post$Runoff))
 }
 else
 {print("")
 }`}
}

Вот мои данные

      Day OB.NO Rainfall.m3 Comulative.Rainfall   Runoff Comulative.Runoff Computed.Runoff Comulative.Computed
46  28-Dec    46      6177.3             88052.7 1567.000          8105.812       575.72436          8206.51164
47  13-Jan    47      3210.8             91263.5  376.650          8482.462       299.24656           8505.7582
48  19-Jan    48      1500.7             92764.2   96.156          8578.618       139.86524          8645.62344
49  20-Jan    49      1116.8             93881.0  293.412          8872.030       104.08576           8749.7092
50  23-Jan    50      1500.7             95381.7   78.744          8950.774       139.86524          8889.57444
51   5-Feb    51      3036.3             98418.0  192.096          9142.870       282.98316           9172.5576
52   6-Feb    52      1186.6             99604.6   31.164          9174.034       110.59112          9283.14872
53  12-Mar    53      1291.3            100895.9  128.172          9302.206       120.34916          9403.49788
54  20-Mar    54       802.7            101698.6  127.404          9429.610        74.81164          9478.30952
55  29-Mar    55       628.2            102326.8    8.226          9437.836        58.54824          9536.85776
56   9-Apr    56       732.9            103059.7   56.490          9494.326        68.30628          9605.16404

1 Ответ

0 голосов
/ 24 апреля 2019

Признаюсь, мне сложно понять контекст этой проблемы, но у меня есть предчувствие, и, возможно, мне повезет, и я кое-что удачу.

Ваш цикл выполняет итерации по фрейму данных, обрабатывая каждыйгрести в одиночку.Я подозреваю, что в этой строке есть проблема.

print(paste("on", Day,"runoff was",post$Runoff))

Я думаю, что «post $ Runoff» ссылается на весь столбец Runoff во фрейме данных.Может быть поэтому он продолжает печатать и печатать.Я думаю, вам нужно выбрать только одну строку.

Теперь вы сделали это уже несколько строк назад.

Rainfall <- post[row,"Runoff"]

Поэтому, почему бы вместо этого не напечатать эту переменную?У вас это уже есть.

print(paste("on", Day,"runoff was",Rainfall))

Надеюсь, это поможет.Я сделал все возможное.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...