Как разрезать данные из среднего индекса до конца, не используя `length` в R (как вы можете в python)?
В python я могу нарезать последние четыре элемента из списка из пяти элементов (вытащить из него значения) следующим образом: mylist[1:]
(обратите внимание, индексирование на основе 0). В R, кажется, что не имеет что-то после того, как двоеточие является ошибкой. В обоих языках я могу поместить последний аргумент в качестве длины списка, но это не всегда удобно (например, встроенное нарезка: colnames(iris)[2:length(colnames(iris))]
).
Есть ли такой синтаксис в R?
Ответы
Ответ 1
Хорошо, что это путают, исходя из фона python, но mylist[-1]
, похоже, делает трюк. Отрицательный в этом случае можно считать "за исключением", т.е. Взять все, кроме столбца 1. Итак, colnames(iris)[-1]
работает, чтобы захватить все, кроме первого элемента.
О, и чтобы исключить больше элементов, рассматривайте его как диапазон, который исключен, поэтому colnames(iris)[-2:-4]
будет хранить только первый и все элементы после (и включая) пятый.
Для других, выходящих из python, ознакомьтесь с этим хорошим слайд-шоу, сравнивающим R с python.
Ответ 2
В R tail(mylist, -2)
имеет тот же эффект, что и mylist[2:]
в Python.