【目的】 すべてのNA(欠損値)を置換する
【方法】 df.all[is.na(df.all)] <- 0
df.allのNAをすべて置換するには、
df.all[is.na(df.all)] <- 0
でOK。
データ分析に関する備忘録。主にR言語を使ったデータの前処理や統計、機械学習などの方法を記録。ビッククエリとトレジャーデータがお気に入り。オフラインとオンラインの連携が最近のマイブーム。
注目の投稿
【kepler.gl】コロナ対策による人流の変化も地図上に可視化(各種メディアで報道)
kepler.glのサイト画面 kepler.glを使ってコロナ対策の効果を分析したところ、テレビ、新聞、ネットのメディアから問い合わせや報道依頼が殺到。今も、土日返上で都内や全国の人流変化を分析しています。この記事では人流変化の可視化に便利なkepler.glにつ...
2015年9月16日水曜日
R クロス集計(acast)
目的:Rでエクセルのピポッドテーブルのようなクロス集計をおこなう
方法:acastを使う
補足:library(reshape2)が必要
#サンプルデータ作成
v.x1 <- c("oda","oda","oda","toyo","toyo","toyo","ie","ie","ie","ie")
v.x2 <- c("a","a","b","b","b","c","c","c","c","c")
v.x3 <- c(1000,900,800,700,600,500,400,300,200,100)
df.x <- data.frame(user_id = v.x1, item = v.x2, price =v.x3)
df.x
#クロス集計
tmp <- acast(df.x, user_id ~ item, sum, value.var = "price")
tmp
#補足:user_idの列を無理やり作る
df.cross <- data.frame(tmp)
write.csv(df.cross,file = "./cross.csv")
df.cross <- fread("./cross.csv") #llibrary(data.table)が必要
df.cross <- data.frame(df.cross)
df.cross
names(df.cross)[1] <- c("user_id")
df.cross
追記:acastは遅いのでspreadがお勧め
R 高速に大規模データのクロス集計をおこなう(tally, spread)
方法:acastを使う
補足:library(reshape2)が必要
#サンプルデータ作成
v.x1 <- c("oda","oda","oda","toyo","toyo","toyo","ie","ie","ie","ie")
v.x2 <- c("a","a","b","b","b","c","c","c","c","c")
v.x3 <- c(1000,900,800,700,600,500,400,300,200,100)
df.x <- data.frame(user_id = v.x1, item = v.x2, price =v.x3)
df.x
> df.x user_id item price 1 oda a 1000 2 oda a 900 3 oda b 800 4 toyo b 700 5 toyo b 600 6 toyo c 500 7 ie c 400 8 ie c 300 9 ie c 200 10 ie c 100
#クロス集計
tmp <- acast(df.x, user_id ~ item, sum, value.var = "price")
tmp
> tmp a b c ie 0 0 1000 oda 1900 800 0 toyo 0 1300 500
#補足:user_idの列を無理やり作る
df.cross <- data.frame(tmp)
write.csv(df.cross,file = "./cross.csv")
df.cross <- fread("./cross.csv") #llibrary(data.table)が必要
df.cross <- data.frame(df.cross)
df.cross
> df.cross V1 a b c 1 ie 0 0 1000 2 oda 1900 800 0 3 toyo 0 1300 500
names(df.cross)[1] <- c("user_id")
df.cross
> df.cross user_id a b c 1 ie 0 0 1000 2 oda 1900 800 0 3 toyo 0 1300 500
追記:acastは遅いのでspreadがお勧め
R 高速に大規模データのクロス集計をおこなう(tally, spread)
登録:
投稿
(
Atom
)