Что делает индекс в r?

#r #dataframe #indexing

Вопрос:

У меня есть код, с которым я работаю, в котором есть следующая строка,

 data2 <- apply(data1[,-c(1:(index-1))],2,log)
 

Я понимаю, что это создает новый фрейм данных из data1, принимая значения по столбцам, преобразованные в журнал, и некоторые столбцы удаляются, но я не понимаю, как удаляются столбцы. что именно делает 1:(индекс-1)?

Комментарии:

1. Предположительно index , это переменная, которую вы ранее определили в своем коде. Это не специальное ключевое слово в R.

Ответ №1:

Оператор «:» создает целочисленную последовательность. Поскольку (1:(index-1) ) является числовым и используется во второй позиции для оператора извлечения» [«, применяемого к кадру данных, это относится к номерам столбцов. Человек, пишущий код, не нуждался в c функции -. Это могло бы быть написано более экономично:

 data1[,-(1:(index-1))]  
# but the outer "("...")"'s are needed so it starts at 1 rather than -1
 

Таким образом, он удаляет первые index-1 столбцы из переданного объекта apply . (Как указывает MrFlick, индекс должен быть определен до того, как он будет передан R. В R. нет значения по умолчанию или интерпретации для. index

Комментарии:

1. Спасибо! индекс был предопределен в коде, я случайно пропустил его при повторном запуске.

Ответ №2:

Предположим, что индекс равен 5, затем индекс -1 возвращает 4, поэтому последовательность будет от 1 до 4, т. Е., а затем мы используем - цикл по столбцам, отличным от первых 4 столбцов, как MARGIN = 2