#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