Похоже, вы понимаете функцию as.data.frame (), поэтому давайте посмотрим, что происходит внутри нее.Мы смотрим на у [1: (нк)].Здесь у - вектор, который представляет собой набор точек данных одного типа.Например:
> y <- c(1,2,3,4,5,6)
Попробуйте запустить его, а затем перезвоните y.То, что вы получаете, это те числа, перечисленные.Теперь рассмотрим случай, когда вы хотите просто вызвать номер 1 в этом векторе.Как бы Вы это сделали?Ну, вот где скобки вступают в игру.Если вы хотите просто позвонить по номеру 1 в y:
> y[1]
[1] 1
Поэтому квадратные скобки - это способ вызова или индексации определенных элементов в векторе.Обратите внимание, что индексирование начинается со значения 1 и увеличивается до количества элементов в векторе или длины.И последнее, прежде чем мы вернемся к примеру, который вы привели.Что, если мы хотим индексировать числа 1, 2 и 3 из вектора, но не остальные?
> y[1:3]
[1] 1 2 3
Именно здесь в игру вступает двоеточие.Это позволяет нам ссылаться на подмножество чисел.Однако он будет ссылаться на все числа между индексом слева от двоеточия и справа от него.Попробуйте сами в R!Поиграйте и посмотрите, что произойдет.
Наконец, вернемся к вашему примеру:
y[1:(n-k)]
Как это будет работать на основе того, что мы обсуждали?Ну, двоеточие означает, что мы индексируем все значения в векторе y из двух значений индекса.Каковы эти ценности?Ну, это цифры слева и справа от двоеточия.Поэтому мы просим R дать нам значения от первой позиции (индекс 1) до позиции (nk).Следовательно, важно знать, что такое n и k.Если n равно 4, а k равно 1, то команда становится такой:
y[1:3]
Та же логика может применяться ко второй команде as.data.frame () в вашем вопросе.По сути, R выбирает разные числа из вектора y и умножает их вместе.
Надеюсь, это поможет.Лучший способ узнать R - это поиграть с командой, набросать на нее разные числа, угадать, что произойдет, а затем посмотреть, что произойдет!