Mam wektor w R, który zawiera co najmniej 50 000 reali. Wartości są sortowane od małych do dużych, a teraz muszę podzielić ten wektor w różnych wektorach. Wektor musi zostać podzielony, gdy różnica między dwiema liczbami jest większa niż podana liczba (powiedzmy dwie).R, wektor podziału pod nieznanym indeksem
Przykład,
data <- c(1,1.1, 1.2, 4, 4.2, 8, 8.9, 9, 9.3);
# Then I need the following vectors:
x1 <- c(1, 1.1, 1.2);
x2 <- c(4, 4.2);
x3 <- c(8, 8.9, 9, 9.3);
Trudność polega na tym, że nie znamy liczbę potrzebnych wektorach i nie wiem, długość każdego wektora w przodzie.
Teraz mam następujący pomysł, jednak jest to bardzo czasochłonne i jest tylko w stanie podzielić wektor na dwa nowe wektory.
j <- 2;
seqDemA1 <- seqDemandA[1];
while((seqDemandA[j-1] - seqDemandA[j] < 2) && (j < length(seqDemandA)+1)) {
seqDemA1 <- c(seqDemA1, seqDemandA[j]);
j <- j+1;
}
seqDemA2 <- seqDemandA[j];
j <- j+1;
while((seqDemandA[j-1] - seqDemandA[j] < 2) && (j < length(seqDemandA)+1)) {
seqDemA2 <- c(seqDemA2, seqDemandA[j]);
j <- j+1;
}
Z niecierpliwością czekam na Twoją pomoc!
Co ma się wydarzyć, gdy znajdziesz wiele możliwych podzielone punktów (czyli istnieje wiele punktów, gdzie różnica pomiędzy kolejnymi numerami jest większy niż 2)? –