2017-01-17 11 views
1

2つの列、町、郵便番号のデータセットがあります。すべての郵便番号に複数の異なる町が広がっているのではなく、1つの町がある場合は、私はそれを望みます。その郵便番号のための最も頻繁に町の名に等しいすべてのtown.namesユニークな郵便番号に基づいて町の名前を設定するにはどうすればいいですか?R

は、これまでのところ、私はのようなものを試してみましたすべてのユニークな郵便番号 セットのため

それは、私のような何かを考えていましたさ
unique.zipcode <- mydata$zipcode[!duplicated(mydata$zipcode) 

for(i in 1:length(unique.zipcode){ 
    mydata$town <- names(which.max(table(mydata$town[mydata$zipcode==unique.zipcode[i]]))) 
} 
+0

コードを共有しながらサンプルデータを共有してください。これは私たち全員が直接作業するのに役立ちます!あなたの次の質問(もしあれば)からこれに従ってください –

答えて

1

あなたがいずれかを提供しなかったので、いくつかのデータをシミュレート:

library(dplyr) 

set.seed(1492) 

data_frame(
    town=sample(LETTERS[1:6], 100, replace=TRUE), 
    zip=sample(c("10010", "21000", "30100", "40001"), 100, replace=TRUE) 
) -> df 

は見てみましょう:

glimpse(df) 
## Observations: 100 
## Variables: 2 
## $ town <chr> "B", "B", "B", "A", "A", "A", "F", "D", "C", "E", "D", "D... 
## $ zip <chr> "21000", "30100", "21000", "21000", "10010", "21000", "40... 

我々はDUPを持って証明:

count(df, zip) 
## # A tibble: 4 × 2 
##  zip  n 
## <chr> <int> 
## 1 10010 27 
## 2 21000 24 
## 3 30100 19 
## 4 40001 30 

タイで周波数&契約によってそれらを排除。

count(df, zip, town) %>% 
    top_n(1) %>% 
    slice(1) 
## Source: local data frame [4 x 3] 
## Groups: zip [4] 
## 
##  zip town  n 
## <chr> <chr> <int> 
## 1 10010  C  7 
## 2 21000  D  6 
## 3 30100  F  6 
## 4 40001  D  8 
+0

ありがとう!欠落しているデータは残念です。 – Fhertzp

+0

あなたが答えをチェックするために働いている場合は、チェックマークを付けて、他の人にそれが動作する解決策であることを知らせます。 – hrbrmstr

+0

私はそれを働かせたら、それをクリックします。 – Fhertzp

関連する問題