Ich habe eine Matrix, die Werte entweder gleich "J" oder "N" umfasst. Diese Werte erscheinen in einem Block von 3, 2 oder 1 und sind durch keine Werte getrennt. Ich würde gerne mal zählen, dass ein Block von 3,2 und 1 erscheint. Ich könnte es schaffen, wenn ich J und N durch 1 ersetze und dann entsprechend der nächsten Funktion zähle. Doch wie können Sie es zwischen J und N. Dankzählen die Anzahl der Vorkommen, wenn Zellen gleich Text sind
der Matrix zu trennen:
t1 t2 t3 t4 t5 t6 t7
[1,] 0 0 0 0 J J 0
[2,] 0 0 N N 0 0 N
[3,] J J J 0 0 0 0
[4,] 0 0 N N N 0 0
Der Code (von jemand im Chat) für J
n1 <- 2
n2 <- 3
res <- t(apply(Calendar, "J", FUN=function(x) {
x1 <- with(rle(x), lengths[!!values])
c(sum(x1==n1), sum(x1==n2))
}))
colnames(res) <- paste0("count", c(11, 111))
res
Nun, es tut work.At das Ende nicht würde Ich mag eine Matrix haben (nach der anfänglichen Matrix)
J3 J2 J1 N3 N2 N1
1 2 0 1 1 1
bearbeiten und Anfrage Klarstellung: Unter der Annahme, dass dies ein Kalender und 1-7 sind Tage der Woche, was wäre die gewünschte Antwort auf diese potentielle Matrix sein:
Die Matrix:
t1 t2 t3 t4 t5 t6 t7
[1,] 0 0 0 0 0 J J
[2,] J 0 N N 0 0 N
[3,] J J J 0 0 0 N
[4,] N 0 N N N 0 0
Wie hast du 2 für J2 und 0 für J1 bekommen? – akrun