Подтвердить что ты не робот

Как разрезать данные из среднего индекса до конца, не используя `length` в R (как вы можете в python)?

В python я могу нарезать последние четыре элемента из списка из пяти элементов (вытащить из него значения) следующим образом: mylist[1:] (обратите внимание, индексирование на основе 0). В R, кажется, что не имеет что-то после того, как двоеточие является ошибкой. В обоих языках я могу поместить последний аргумент в качестве длины списка, но это не всегда удобно (например, встроенное нарезка: colnames(iris)[2:length(colnames(iris))]).

Есть ли такой синтаксис в R?

4b9b3361

Ответ 1

Хорошо, что это путают, исходя из фона python, но mylist[-1], похоже, делает трюк. Отрицательный в этом случае можно считать "за исключением", т.е. Взять все, кроме столбца 1. Итак, colnames(iris)[-1] работает, чтобы захватить все, кроме первого элемента.

О, и чтобы исключить больше элементов, рассматривайте его как диапазон, который исключен, поэтому colnames(iris)[-2:-4] будет хранить только первый и все элементы после (и включая) пятый.

Для других, выходящих из python, ознакомьтесь с этим хорошим слайд-шоу, сравнивающим R с python.

Ответ 2

В R tail(mylist, -2) имеет тот же эффект, что и mylist[2:] в Python.