Конвертировать 3d матрицу в фрейм данных

Факты:

  • $("#datepicker").datepicker("setDate", date) следует использовать для установки «выбранная дата». В качестве побочного эффекта он также изменит «месяц показа». но использовать его только для установки «месяца показа» не является хорошей практикой.
  • $('#datepicker .ui-datepicker-prev').click() и $('#datepicker .ui-datepicker-next').click() следует использовать для установки «месяца показа» и у него нет побочных эффектов. Но имейте это в виду, это медленно, если вы установите «показательные месяцы» на несколько лет.
  • Невозможно получить текущий «отображаемый месяц».

Исходя из фактов, вот решение:

var currentDate = new Date ();
var currentMonth = new Date (currentDate.getFullYear(), currentDate.getMonth(), 1);

//Keep currentMonth sync with "display month"
$("#datepicker").datepicker({
    onChangeMonthYear: function (year, month, inst) {
        currentMonth = new Date(year, month - 1, 1);  
        //JavaScript used 0...11 for months. Jquery UI used 1...12 for months.
    },
});


function ChangeMonth(month)
{
    while (currentMonth < month) {
        $('#datepicker .ui-datepicker-next').click();
    };

    while (currentMonth > month) {
        $('#datepicker .ui-datepicker-prev').click();
    };
};
0
задан krishna 3 March 2019 в 01:11
поделиться

1 ответ

Вы можете использовать expand.grid() для комбинации измерений и as.vector для получения данных в виде вектора.

Обратите внимание на порядок размеров!

dim1 <- c('a', 'b')
dim2 <- c('a', 'b', 'c')
dim3 <- c('a', 'b', 'c', 'd')

data <- array(1:24, c(2,3,4), dimnames = list(dim1, dim2, dim3))
data

cbind(expand.grid(dim1,  dim2, dim3), val = as.vector(data))
0
ответ дан kwiscion 3 March 2019 в 01:11
поделиться
Другие вопросы по тегам:

Похожие вопросы: