2014-02-11 3 views
2

Мне очень жаль беспокоить вас, но я понятия не имею, как разрешить вводное упражнение Р. (Конечно, я поступил по-настоящему честолюбиво перед публикацией!). Итак, упражнение «Создайте вектор z со всеми 99 различиями между соседними элементами из x, для которых z [1] = x [2] -x [1], z [2] = x [3] -x [2], «Я предполагаю, что он должен работать без петель. Я предполагаю, что это довольно простой, но я совершенно новой для R.Разница между соседними элементами вектора в R

Спасибо за вашу помощь

+0

поиск 'diff' и может быть это может помочь?. [1]: http://stackoverflow.com/questions/13911486/the-diff-function – PKumar

+0

Я не могу попробовать, так как я только начал с R и действительно не знаю. Поэтому я в основном думаю, что это может быть. Я думал о создании вектора, включая увеличивающиеся индексы, но я думаю, это не решает проблему итерации. Я также googled для итерации без цикла, и я всегда сталкивался с функцией sapply() Но я не понял, что это делает. – user3296555

+0

Проблема, как вы ее описываете, не соответствует названию вашего сообщения. Возможно, лучший заголовок может быть чем-то вроде «различия между соседними элементами вектора». –

ответ

11

Похоже функции дифф

diff(x) 

Вы также можете использовать этот код:

x[-1] - x[-length(x)] 

x[-1] - вектор x без первого элемента

x[-length(x)] - вектор х без последнего элемента

+0

Да, это правда. На самом деле звучит как diff (x), но поскольку этот функционал не был введен в курсе, я предполагаю, что для этого упражнения должен быть достаточно простой прямой подход? – user3296555

+0

Очень приятно. Большое спасибо за вашу помощь. Наверное, это то, за что он был взят. – user3296555

+2

3 года спустя это отличная помощь :) – Yoav24

3
x <- c(1,3,3,9) 
(z <- x[-1] - head(x, -1)) 
# [1] 2 0 6 
+0

Ну да! Я об этом не думал ... Отлично. Спасибо alot – user3296555

+0

@lukeA Мне понравился ваш ответ –

Смежные вопросы