注目の投稿

【kepler.gl】コロナ対策による人流の変化も地図上に可視化(各種メディアで報道)

kepler.glのサイト画面 kepler.glを使ってコロナ対策の効果を分析したところ、テレビ、新聞、ネットのメディアから問い合わせや報道依頼が殺到。今も、土日返上で都内や全国の人流変化を分析しています。この記事では人流変化の可視化に便利なkepler.glにつ...

ラベル rbind の投稿を表示しています。 すべての投稿を表示
ラベル rbind の投稿を表示しています。 すべての投稿を表示

2019年11月2日土曜日

【R】Rでfor文を書く(ループの設定)

Rでfor文

  • 目的:Rでfor文を書く
  • 方法:for関数を使う

◇書き方

#for文
for(i in 1:3){ # iを1 ~ 3まで繰り返す
}

◇実行結果

> #for文
> for(i in 1:3){ # 1 ~ 3まで繰り返す
+   print(i) # iを表示する
+ }
[1] 1
[1] 2
[1] 3
>

◇応用:for文を使ってテーブルのデータを増やす

> #xテーブルをつくる
> library(data.table)
> x <- data.table(id = 1) #library(data.table)必要
> x
   id
1:  1
>
> for(i in 2:3){ # 2 ~ 3まで繰り返す
+   y <- data.table(id = i) #id列にiが入るyテーブルを創る
+   x <- rbind(x, y) #xテーブルにyテーブルを連結する
+ }
> x
   id
1:  1
2:  2
3:  3
>

for文を擬人化してみた


2017年7月19日水曜日

R "rbindlist(l, use.names, fill, idcol) でエラー: "の解決法

もし、rbindを実行し下記のエラーとなったら(rbindとは)、

>  dt.log <- dt.log="" dt.log_2="" rbind="" span=""> 
 Show Traceback

 Rerun with Debug
 rbindlist(l, use.names, fill, idcol) でエラー:
  Class attributes at column 10 of input list at position 2 does not match with column 10 of input list at position 1. Coercion of objects of class 'factor' alone is handled internally by rbind/rbindlist at the moment.


↓連結したいデータをdata.frameで読み込むと解決

>  dt.log <- data.frame="" dt.log="" dt.log_2="" rbind="">
 


今回のエラーは、連結したいデータがdata.tableでデータ量が多い(100万レコード以上くらい)ときに起きがち


2015年6月18日木曜日

R データフレームを縦に結合

【目的】 データフレームを縦に結合する
【方法】 rbind(df.x, df.y)
【補足】 列名が同じであること

テスト用のデータフレーム作成

v.x <- c(1,2,3)
v.y <- c(10,20,30)

df.x <- data.frame(id = v.x)
df.y <- data.frame(id = v.y)

> df.x
  id
1  1
2  2
3  3

> df.y
  id
1 10
2 20
3 30 

df.z <- rbind(df.x, df.y)

> df.z
  id
1  1
2  2
3  3
4 10
5 20
6 30

R 複数のデータフレームをたてに連結する

【目的】 複数のデータフレームをたてに連結
【方法】 rbind_all(list(df.x, df.y, df.z))
【補足】 異なる列名もつなげる

テスト用のデータフレーム作成

v.x <- c(1,2,3)
v.y <- c(10,20,30)

df.x <- data.frame(id = v.x)
df.y <- data.frame(id = v.y)

> df.x
  id
1  1
2  2
3  3

> df.y
  id
1 10
2 20
3 30 

df.z <- rbind(df.x, df.y)

> df.z
  id
1  1
2  2
3  3
4 10
5 20
6 30

rbind_all(list(df.x, df.y, df.z))

> rbind_all(list(df.x, df.y, df.z))
Source: local data frame [12 x 1]

   id
1   1
2   2
3   3
4  10
5  20
6  30
7   1
8   2
9   3
10 10
11 20
12 30

列名が異なるデータフレームを用意する

v.d <- c(1,2,3)
df.d <- data.frame(d = v.d)

> df.d
  d
1  1
2  2
3  3

rbind_all(list(df.x, df.y, df.d))

> rbind_all(list(df.x, df.y, df.d))
Source: local data frame [9 x 2]

  id  d
1  1 NA
2  2 NA
3  3 NA
4 10 NA
5 20 NA
6 30 NA
7 NA  1
8 NA  2
9 NA  3