내가 (CSV에서 수입) 테이블에있는 데이터의 무리가를 사용하여 누적 막대 그래프에 대한 데이터를 바꿀 방법 :는 다음과 같은 형식으로 R 격자
date classes score
9/1/11 french 34
9/1/11 english 34
9/1/11 french 34
9/1/11 spanish 34
9/2/11 french 34
9/2/11 english 34
9/3/11 spanish 34
9/3/11 spanish 34
9/5/11 spanish 34
9/5/11 english 34
9/5/11 french 34
9/5/11 english 34
이 점수 열을 무시, 그것은 중요하지 않습니다.
날짜를 기준으로 영어 또는 스페인어 또는 프랑스어 수업을받는 학생의 총 수를 집계해야합니다. 먼저 날짜별로 그룹화 한 다음 언어를 기반으로 각 블록을 더 많은 블록으로 나누고 스택 막대 차트로 그려야하므로 다음과 같이 보입니다. 각 막대는 날짜를 나타내고 막대의 각 단면은 단일 언어를 나타냅니다.
각 행이 날짜와 모든 열을 특성 (또는 언어)으로 나타내는 행렬 형식으로 데이터를 얻은 후에이를 수행하는 방법을 알아 냈습니다. 그래서 나는 CSV에서 그 형태의 데이터를 가정 할 :
ie french english spanish
9/1/11 2 1 1
9/2/11 1 1 0
9/3/11 0 0 2
9/5/11 1 2 1
다음 내가 할 수있는 :
directory<-"C:\\test\\language.csv"
ourdata6<-read.csv(directory)
language<-as.matrix(ourdata6)
barchart(prop.table(language), horizontal=FALSE, auto.key = list(space='right',cex=.5,border=T,points=F, lines=F,lwd=5,text=c('french','spanish','enligsh'),cex=.6), main = list(label="Distribution of classes 10",cex=2.5), ylab = list(", cex=1.7),xlab.top=list("testing",cex=1.2))
도전은 내가 필요로하는 형식으로 원래 형식에서 데이터를 얻을 수 있습니다. 이 모두 나에게 정렬 된 수를 제공하지만 수직 형태
ie
9/1/11 french 2
9/1/11 english 1
9/1/11 spanish 1
etc...
에 나는이 그래서 날짜 당 하나의 행이된다 피벗 필요로하는 곳에
나는a<-count(language, c("date", "classes"))
을 시도했다. 또한 이들 중 일부가 0 일 수 있으므로 그 자리 표시자를 필요로합니다. 첫 번째 열은 french에 해당해야하고, 두 번째 열은 현재 설정이 작동하려면 영어와 일치해야합니다.
이 작업을 수행하는 방법에 대한 아이디어가 있거나 matrix + prop.table을 사용하는 방식이 맞다면 어떻게해야할까요? 이 작업을 수행하는 간단한 방법이 있습니까? 이 다음 dataframe 결과, 사용자가 제공 한 예제 데이터를 사용하여
library(dplyr)
library(tidyr)
wide <- df %>% select(date,classes) %>%
group_by(date,classes) %>%
summarise(n=n()) %>% # as @akrun said, you can also use tally()
spread(classes, n, fill=0)
:
+1, 또는'DF %> '% tally() %> (클래스, n, 채우기 = 0)' – akrun
@akrun'tally' 함수를 가리키는 Thanx. 오늘 새로운 무언가를 다시 배웠습니다 :-) – Jaap
안녕하세요, 감사합니다, 그 명령의 테이블 이름은 어디입니까 – curfewed