とある技術者の徒然草

生産技術者の適当な日記(統計言語Rに関するメモがメイン)

【R】ユニーク数(項目の種類)を数えるコード

ユニーク数(項目の種類)を数えるコード

Rの防備メモです。
下記のkaggleのメルカリコンペで使った、
カラムのユニーク数を数えるコードをメモります

A Very Extensive Mercari Exploratory Analysis | Kaggle

library(tidyverse)
library(data.table)#fread関数

train <- fread("train.tsv", sep = "\t")
df_train <- as_data_frame(train)

#カテゴリーを分類する。分類後のユニーク数を確認する
df_train2 <- df_train %>% 
  tidyr::separate(category_name,into=c("cate1","cate2","cate3","cate4"),sep="/")

#uniqueを使う
df_train2 %>% 
  summarise(Num_cate1 = length(unique(cate1)),Num_cate2 = length(unique(cate2)),Num_cate3 = length(unique(cate3)),Num_cate4 = length(unique(cate4)))

df_train2 %>% 
  summarise_at(c("cate1","cate2","cate3","cate4"),function(x)length(unique(x)))

df_train2 %>% 
  select(starts_with("cate")) %>% 
  summarise_all(function(x)length(unique(x)))

#n_distinctを使う
df_train2 %>% 
  summarise(Num_case1 = n_distinct(cate1),Num_case2 = n_distinct(cate2),Num_case3 = n_distinct(cate3),Num_case4 = n_distinct(cate4))

他に良いやり方があったら教えてほしい。。