закрыто / исправлено: Интерпретация базового кода R - PullRequest
0 голосов
/ 09 февраля 2019

У меня есть основной вопрос в отношении языка программирования R.

Я нахожусь на начальном уровне и хочу понять смысл двух строк кода, которые я нашел в Интернете, чтобы лучше понятьпонимание.Вот код:

as.data.frame(y[1:(n-k)])
as.data.frame(y[(k+1):n])

... где указаны y и n.Я понимаю, что результаты преобразуются в фрейм данных функцией as.data.frame(), но как насчет остальных?Я все еще на уровне начинающих, так что извините, если этот вопрос не по теме или не имеет значения на этом форуме.Заранее спасибо, я ценю каждый ответ :)

1 Ответ

0 голосов
/ 09 февраля 2019

Похоже, вы понимаете функцию 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 - это поиграть с командой, набросать на нее разные числа, угадать, что произойдет, а затем посмотреть, что произойдет!

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