2017-12-29 1 views
0

의 언어 : 나는 모든 프로그래밍 언어를 요약하고 싶습니다각 p의 빈도를 가져옵니다. 나는 다음과 같은 데이터 세트와 함께 일하고 있어요 각국

| Country   | HaveWorkedLanguage 
1 | United States | Swift 
2 | United States | Python 
3 | Austria   | JavaScript 
4 | Austria   | JavaScript 
5 | United States | Swift 

.

| Country   | HaveWorkedLanguage | Frequency 
1 | United States | Swift    |  2 
2 | United States | Python    |  1  
3 | Austria   | JavaScript   |  2 

이미 table()와 함께 놀았지만 바로 그것을 만들 수 없습니다 : 의 출력은, 다음과 같이됩니다. data.table를 사용

+0

모양과이 중복 질문이지만, – MichaelChirico

+0

을 "계산", "그룹에서"링크 속는 그나마의 답변 이후 'res'- setNames (melt (table (df $ country, df $ hasWorkedLanguage)), c ("country", "haveWorkedLanguage", "frequency")); res [res $ frequency> 0,]'. 링크 된 질문의 대답은 훨씬 간단합니다. 이것은 궁금하다. –

+0

@MikeH. 당신은 또한 보호 된 스레드에 솔루션을 추가 할 수 있습니다 :-) – PoGibas

답변

0

, 당신은 않는 countgroup by 다음 unique 수행 -

df <- data.table(Country = c("United States", "United States", "Austria", "Austria", "United States"), HaveWorkedLanguage = c("Swift", "Python", "JavaScript", "JavaScript", "Swift")) 
df[, Frequency := .N, by = c("Country", "HaveWorkedLanguage")] 
df <- unique(df) 
그것은 당신에게 원하는 출력을주지

: -

Country   HaveWorkedLanguage Frequency 
1: United States Swift    2 
2: United States Python    1 
3: Austria   JavaScript   2 
+0

성스러운 똥 XD는 빠른 ... * 부끄럽네 ... * 그 트릭을했습니다 :) 고마워요! –

+0

반갑습니다. – suchait

1

사용 dplyr 라이브러리

df %>% group_by(Country,HaveWorkedLanguage) %>% 
      dplyr::summarize(Frequency=n()) %>% 
      as.data.frame() 
0

'dplyr'ma 이것은 직관적 인 과정입니다. 먼저 'GROUP_BY'다음과 같이 요약하고 요약을 수행 할 것 : 대한

library(dplyr) 

df <- tibble(country = c('United States', 'United States', 'Austria', 'Austria', 'United States'), 
     haveworkedlang = c('Swift', 'Python', 'JavaScript', 'JavaScript', 'Swift')) 

df %>% 
    group_by(haveworkedlang) %>% 
    summarize(n()) 
+1

이 솔루션은 이미 게시되었습니다 – PoGibas

+0

내 답변을 게시 한 후 그것을 보았습니다. 나는 방금 경주에서졌다. – AlphaDrivers

관련 문제