Я хотел бы усреднить столбцы в кадре данных в R, который содержит целочисленные значения, а иногда и NA.Средние столбцы в dataframe в R
Информационная рамка под названием CD6 (Климатический отдел 6), которая инициализируется значениями NA для хранения средних значений для всех данных, относящихся к климатическому отделу 6. Строки представляют собой даты, а столбцы представляют часы от 0 до 23. Экран данных как это:
> CD6
Date H0 H1 H2 H3 H4 H5 H6 H7 H8 H9 H10 ... H23
1948-07-01 NA NA NA NA NA NA NA NA NA NA NA ... NA
1948-07-02 NA NA NA NA NA NA NA NA NA NA NA ... NA
1948-07-03 NA NA NA NA NA NA NA NA NA NA NA ... NA
dataframe называется CA имеет истинные значения для всех климатических подразделений в пределах от 1 до 7. кадр данных выглядит следующим образом:
> CA
Climate_Division Date H0 H1 H2 H3 H4 H5 H6 H7 H8 H9 H10 ... H23
6 1948-07-01 NA NA NA NA NA NA NA NA NA NA NA ... NA
5 1948-07-01 0 1 1 3 0 0 0 0 0 0 0 ... 2
6 1948-07-01 0 1 1 3 0 0 0 0 0 0 0 ... 2
6 1948-07-01 1 0 0 5 7 0 1 1 1 0 0 ... 0
6 1948-07-02 0 2 1 2 1 1 NA 0 1 0 1 ... 2
6 1948-07-03 NA NA NA NA NA NA NA NA NA NA NA ... NA
у меня есть цикл кодированный, что будет выполнять итерацию через datafram e ЦС по строкам и сопоставить с правильным фреймворком данных для климатического деления (в этом примере CD6 для климатического деления 6). Проблема в том, что я не знаю, сколько строк есть для каждого климатического деления, чтобы в среднем принять его.
Если посмотреть только на CD6, я бы хотел получить среднее значение для каждой даты в определенный час, который игнорирует NA, если присутствуют истинные значения, а окончательный ответ - целое число (потолок значения). Если все часы в различных климатических деления имеют значение NA, я хотел бы сохранить его в качестве так как противостоять 0. Конечный результат должен выглядеть следующим образом для CD6
> CD6
Date H0 H1 H2 H3 H4 H5 H6 H7 H8 H9 H10 ... H23
1948-07-01 1 1 1 4 4 0 1 1 1 0 0 ... 1
1948-07-02 0 2 1 2 1 1 NA 0 1 0 1 ... 2
1948-07-03 NA NA NA NA NA NA NA NA NA NA NA ... NA
Я не знаю точно как это сделать при кодировании и использовании этого опыта. Поэтому любые предложения будут полезны и благодарны за ваше время.
Вы можете вставить выходные данные 'dput (CA)' здесь, чтобы мы могли воспроизвести ваши данные? –
как среднее значение 1 и 0 (для Climate_Division = 6 и Date = 1948-07-01) 1? Разве это не должно быть 0,5? –
geektrader - вы правы, он должен быть 0,5, однако я положил 1, поскольку я взял его, чтобы поддерживать целые числа. –