데이터 세트가 있습니다.
Abweichung BW_Gesamt
76 236 1137747
77 2000 1149019
78 2000 1227972
79 2331 1346480
80 4000 2226810
81 5272 2874114
82 8585 4418070
83 15307 5389585
이제 그룹화하고 싶습니다. 어려움은 x 축의 MIN / MAX와 그룹 수를 입력하여 유연한 브레이크를 적용 할 수 있다는 것입니다. 따라서 데이터를 "MYSCHRTW"폭의 그룹으로 자릅니다.
bins <- 4 # Amount of groups
MYMIN <- 0
MYMAX <- 20000
MYSCHRTW <- (-MYMIN+MYMAX)%/%bins # Wide of one group 5000
GRENZEN <- seq(from = MYMIN, by = MYSCHRTW, length.out = bins)
GRENZEN <- c(GRENZEN, MYMAX+1) #Brakes: 0 5000 10000 15000 20001
잘라 내기 기능을 사용합니다.
setDT(mydata)[ , Gruppen := cut(mydata$Abweichung,breaks=GRENZEN,dig.lab = 5)]
문제는 하나의 그룹이 비어있어서 표시되지 않기 때문에 누락된다는 것입니다. 해당 그룹없이 데이터를 플로팅하면 결과가 편향 될 수 있으므로 Abweichung 및 BW_Gesamt 0을 사용하여 그룹 (10000,15000]을 추가하려면 어떻게해야합니까?
Abweichung BW_Gesamt Gruppen
1: 236 1137747 (0,5000]
2: 2000 1149019 (0,5000]
3: 2000 1227972 (0,5000]
4: 2331 1346480 (0,5000]
5: 4000 2226810 (0,5000]
6: 5272 2874114 (5000,10000]
7: 8585 4418070 (5000,10000]
8: 15307 5389585 (15000,20001]
나는 스스로 답을 찾은 것 같습니다. 그래서 다음의 첫 게시물에서 계속하십시오.
setDT(mydata)[ , Gruppen := cut(mydata$Abweichung,breaks=GRENZEN,dig.lab = 5)]
> print(mydata)
Abweichung BW_Gesamt Gruppen
1: 236 1137747 (0,5000]
2: 2000 1149019 (0,5000]
3: 2000 1227972 (0,5000]
4: 2331 1346480 (0,5000]
5: 4000 2226810 (0,5000]
6: 5272 2874114 (5000,10000]
7: 8585 4418070 (5000,10000]
8: 15307 5389585 (15000,20000]
> class(mydata$Abweichung)
[1] "numeric"
> class(mydata$BW_Gesamt)
[1] "numeric"
library(dplyr)
mydata <- levels(mydata$Gruppen) %>% #get distinct levels of the Gruppen variable
data.frame(Gruppen = .) %>% # create a data frame
left_join(mydata %>% # join with
group_by(Gruppen) %>% # for each value that exists
summarise(Abweichung = n(), BW_Gesamt = sum(BW_Gesamt)), by = "Gruppen") %>% # get occurrence of Abweichung and sum of BW_Gesamt just for fun
mutate(Abweichung = coalesce(Abweichung, 0L)) %>% # replace NAs with 0s
mutate(BW_Gesamt = coalesce(as.integer(BW_Gesamt), 0L))
> class(mydata$Abweichung)
[1] "integer"
> class(mydata$BW_Gesamt)
[1] "integer"
> print(mydata)
Gruppen Abweichung BW_Gesamt
1 (0,5000] 5 7088028
2 (5000,10000] 2 7292184
3 (10000,15000] 0 0
4 (15000,20000] 1 5389585
Abweichung은 정수로 변경되고 BW_Gesamt는 숫자로 유지된다는 사실을 알았 기 때문에 Abweichung과 BW_Gesamt를 변경하는 데는 차이가 있습니다.
이 방법이 얼마나 효율적인지 모르겠습니다. 여기에서 찾았습니다. LINK AntoniosK 덕분에
누군가가 어떻게 최적화 할 수 있는지 아이디어를 가지고있을 수 있습니다. 제 생각에는 그룹의 결과를 바꾸는 장점이 있습니다. 그래서 BW_Gesamt의 합을 보여 주면서 동시에 Abweichung의 발생 횟수를 보여줄 수 있습니다.
이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.
침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제
몇 마디 만하겠습니다