В таких ситуациях моя первоначальная попытка - попытаться использовать функцию dplyr
case_when()
.
library(dplyr)
df <- data.frame(ID = c(1:7),
Systolic = c(130,118,120,115,184,114,95),
Diastolic = c(80,76,80,74,107,69,72))
df <- df %>%
mutate(BPLevel = case_when(Systolic < 120 | Diastolic < 80 ~ "Normal",
between(Systolic, 120, 139) | between(Diastolic, 80, 89)~ "Prehypertension",
Systolic>=140 | Diastolic >= 90 ~ "Hypertension",
TRUE ~ "Missing"
))
Единственное, что в вашем примере выше, что должно произойти, если Систолическое = 120 или диастолическое = 80? Функция dplyr::between
, которую я использовал, включает в себя 120 и 80. Проверьте ?dplyr::between
для более подробной информации.
Помогает ли это решить вашу проблему?
Я вижу два способа сделать это:
Отключить кнопки в гладкой конфигурации { 'arrows': false }
, а затем создать пользовательские элементы в вашем шаблоне, которые подключаются к slickNext()
и slickPrev()
. Теперь вы можете отключить эти кнопки, используя что-то вроде *ngIf="slides.length <= mySlideLimit
Вы также можете создавать собственные шаблоны для ваших кнопок вперед / назад в конфигурации, используя опции конфигурации nextArrow
и prevArrow
.
Я лично предпочитаю вариант 1.
Шаблон:
<div class="scrolling-wrapper" *ngIf="hasUsage">
<ngx-slick-carousel class="carousel" ...>
</ngx-slick-carousel>
<button *ngIf="data.length >= 3" (click)="slickModal.slickNext">Next</button>
<button *ngIf="data.length >= 3" (click)="slickModal.slickPrev">Prev</button>
</div>
Component.ts
slideConfig = {
"slidesToShow": 7,
"slidesToScroll": 4,
"infinite": false,
"arrows": false,
};
...
Вы можете найти более подробную информацию обо всем, что достаточно здесь: http://kenwheeler.github.io/slick/