Ասենք, որ ես ունեմ ամբողջ թվերի վեկտոր
x <- c(10, 1, 1, 4, 10, 10, 7, 7, 7)
և ես ուզում եմ այս վեկտորի հիման վրա ստեղծել ցուցիչների երկու հավաքածու: Առաջին ցուցիչը՝ y
, պետք է հավասար լինի 1
-ի՝ մինչև x == 10
, իսկ հետո հավասար լինի զրոյի՝ վեկտորի մնացած մասի համար: Կարևոր է, որ այն պետք է անտեսի վեկտորում ավելի ուշ հայտնաբերված ցանկացած լրացուցիչ 10
: Օրինակ, վերը նշված x
-ը, ես կսպասեի
y <- c(1, 0, 0, 0, 0, 0, 0, 0, 0)
եւ եթե
x <- c(10, 10, 10, 1, 1, 5, 10, 7, 9)
ապա
y <- c(1, 1, 1, 0, 0, 0, 0, 0, 0)
Երկրորդ ցուցիչը՝ z
, պետք է հավասար լինի 1
ի առաջին տարրի համար հաջորդականության ավարտից հետո: Հաշվի առնելով վերը նշված x
վեկտորները, ես կակնկալեի, որ ելքերը կլինեն.
z <- c(0, 1, 0, 0, 0, 0, 0, 0, 0)
z <- c(0, 0, 0, 1, 0, 0, 0, 0, 0)
Մի վեկտորի օգտագործումը մյուսը մշակելու համար միանգամայն լավ է: Ես չկարողացա գտնել դա լուծելու կոկիկ եղանակ, հաշվի առնելով, որ հաջորդականությունը մշակելու համար օգտագործվող թիվը կարող է ավելի ուշ լինել վեկտորի մեջ, ուստի հավասարության պարզ ստուգումն իմ դեպքում չի աշխատում:
rle
-ից: Այս գործի համար իսկապես լավ է աշխատում: 14.10.2020