Ich möchte ein statistisches Prozesskontrolldiagramm für jeden Namen in diesem Datenrahmen erstellen und die Zeilen extrahieren, die für jeden einzelnen Namen außer Kontrolle geraten.SPC - Kontrollkarten nach Gruppe in R
Unten ist der Datenrahmen:
DATE <- as.Date(c('2016-06-18', '2016-06-19', '2016-06-20',
'2016-06-21', '2016-06-22', '2016-06-23',
'2016-06-24', '2016-06-25', '2016-06-26',
'2016-06-27', '2016-06-28', '2016-06-29',
'2016-06-30', '2016-06-18', '2016-06-19',
'2016-06-20', '2016-06-21', '2016-06-22',
'2016-06-23', '2016-06-24', '2016-06-25',
'2016-06-26', '2016-06-27', '2016-06-28',
'2016-06-29', '2016-06-30', '2016-06-18',
'2016-06-19', '2016-06-20', '2016-06-21',
'2016-06-22', '2016-06-23', '2016-06-24',
'2016-06-25', '2016-06-26', '2016-06-27',
'2016-06-28', '2016-06-29', '2016-06-30'))
Name <- c('A', 'A', 'A', 'A', 'A', 'A','A', 'A', 'A', 'A', 'A', 'A', 'A',
'B', 'B', 'B', 'B', 'B', 'B','B', 'B', 'B', 'B', 'B', 'B', 'B',
'C', 'C', 'C', 'C', 'C', 'C','C', 'C', 'C', 'C', 'C', 'C', 'C')
Revenue <- c(0.08, 0.03, 0.09, 2, 0.09, 0.29, 0.56, 0.23, 0.12, 0.76, 0.23, 0.45,0.32,
0.10, 0.14, 0.80, 0.3, 0.12, 0.75, 0.20, 0.09, 0.22, 0.11, 4, 0.30, 0.45,
0.19, 0.23, 0.56, 0.77, 0.9, 9, 0.38, 0.11, 0.98, 0.87, 0.09, 0.20, 0.65)
df<-data.frame(DATE, Name, Revenue)
dput(df)
structure(list(DATE = structure(c(16970, 16971, 16972, 16973,
16974, 16975, 16976, 16977, 16978, 16979, 16980, 16981, 16982,
16970, 16971, 16972, 16973, 16974, 16975, 16976, 16977, 16978,
16979, 16980, 16981, 16982, 16970, 16971, 16972, 16973, 16974,
16975, 16976, 16977, 16978, 16979, 16980, 16981, 16982), class = "Date"),
Name = structure(c(1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L,
1L, 1L, 1L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L,
2L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L), .Label = c("A",
"B", "C"), class = "factor"), Revenue = c(0.08, 0.03, 0.09,
2, 0.09, 0.29, 0.56, 0.23, 0.12, 0.76, 0.23, 0.45, 0.32,
0.1, 0.14, 0.8, 0.3, 0.12, 0.75, 0.2, 0.09, 0.22, 0.11, 4,
0.3, 0.45, 0.19, 0.23, 0.56, 0.77, 0.9, 9, 0.38, 0.11, 0.98,
0.87, 0.09, 0.2, 0.65)), .Names = c("DATE", "Name", "Revenue"),
row.names = c(NA, -39L), class = "data.frame")
df
> df
DATE Name Revenue
1 2016-06-18 A 0.08
2 2016-06-19 A 0.03
3 2016-06-20 A 0.09
4 2016-06-21 A 2.00
5 2016-06-22 A 0.09
6 2016-06-23 A 0.29
7 2016-06-24 A 0.56
8 2016-06-25 A 0.23
9 2016-06-26 A 0.12
10 2016-06-27 A 0.76
11 2016-06-28 A 0.23
12 2016-06-29 A 0.45
13 2016-06-30 A 0.32
14 2016-06-18 B 0.10
15 2016-06-19 B 0.14
16 2016-06-20 B 0.80
17 2016-06-21 B 0.30
18 2016-06-22 B 0.12
19 2016-06-23 B 0.75
20 2016-06-24 B 0.20
21 2016-06-25 B 0.09
22 2016-06-26 B 0.22
23 2016-06-27 B 0.11
24 2016-06-28 B 4.00
25 2016-06-29 B 0.30
26 2016-06-30 B 0.45
27 2016-06-18 C 0.19
28 2016-06-19 C 0.23
29 2016-06-20 C 0.56
30 2016-06-21 C 0.77
31 2016-06-22 C 0.90
32 2016-06-23 C 9.00
33 2016-06-24 C 0.38
34 2016-06-25 C 0.11
35 2016-06-26 C 0.98
36 2016-06-27 C 0.87
37 2016-06-28 C 0.09
38 2016-06-29 C 0.20
39 2016-06-30 C 0.65
Ich möchte ein Skript schreiben, die eine Kontrollkarte mit dem qcc
Paket für jeden Namen und dann CallOut die Zeilen schaffen, die über die Grenzen sind für die Kontrollkarte jedes Namens.
So weiß ich, wie man eine normale individuelle Steuerkarte für jeden Namen getrennt, was das wäre. Name: "A" zum Beispiel:
Ergebnis:
Ergebnis ist ein Datenpunkt über die Grenzen nur für Namen sind A:
6
Mein Ziel ist es, ein Skript zu schreiben, das die Zeilen für alle Namen extrahiert (nicht nur die Zeilennummer wie 6).
Also hier ist, was ich will die Ausgabe wie am Ende aussehen:
Out_of_Control_Rows_By_Name
DATE Name Revenue
6 2016-06-21 A 2.00
11 2016-06-28 B 4.00
6 2016-06-23 C 9.00
Jede Hilfe wäre toll, danke!
In Zukunft wäre es, die Daten zu teilen mit 'dput' vorzuziehen sein, so dass es leicht Besonders in R. gelesen werden können, wenn Sie rownames haben, so dass es schwieriger macht, nimm Daten von deiner Frage und versuche, sie einzulesen. –
willst du immer noch, dass ich es tue oder warst du in der Lage es in R zu lesen, so wie es ist? @ Hack-R –
@ Hack-R hinzugefügt dput zum Datenrahmen. Hoffe, das macht es leichter zu verstehen. Vielen Dank! –