Попробуйте:
df$FareOverNext <- unlist(lappy(split(df$FareValue, df$FlightID), {
c(1, x[1:(length(x) - 1)] / x[2:length(x)])
}))
РЕДАКТИРОВАТЬ:
Добавлено lapply
и split
благодаря комментарию @thelatemail.
function scrollTo(hash) {
location.hash = "#" + hash;
}
Никакого jQuery не требуется!
Просто получите правильную Y
координату и используйте window.scrollTo
.
const yourElement = document.getElementById('anchorName2');
const yCoordinate = yourElement.getBoundingClientRect().top + window.pageYOffset;
window.scrollTo({
top: yCoordinate,
behavior: 'smooth'
});
scrollIntoView
тоже хороший вариант, но в некоторых случаях он может не работать идеально. Например, когда вам нужно дополнительное смещение . С помощью scrollTo
вам просто нужно добавить это смещение к yCoordinate
следующим образом:
const yOffset = -10;
window.scrollTo({
top: yCoordinate + yOffset,
behavior: 'smooth'
});
Вы можете использовать jQuerys .animate(), .offset() и scrollTop
. Например
$(document.body).animate({
'scrollTop': $('#anchorName2').offset().top
}, 2000);
пример ссылки: http://jsbin.com/unasi3/edit
Если вы не хотите анимировать, используйте .scrollTop() like
$(document.body).scrollTop($('#anchorName2').offset().top);
или javascripts native location.hash
like
location.hash = '#' + anchorid;
Гораздо проще:
var element_to_scroll_to = document.getElementById('anchorName2');
// Or:
var element_to_scroll_to = document.querySelectorAll('.my-element-class')[0];
// Or:
var element_to_scroll_to = $('.my-element-class')[0];
// Basically `element_to_scroll_to` just have to be a reference
// to any DOM element present on the page
// Then:
element_to_scroll_to.scrollIntoView();