No.21724 【R】データフレーム間の特定の要素のコピー  【赤羽】 2015/07/06(Mon) 22:41

青木先生,
赤羽と申します,ご教示をよろしくお願いいたします。

過日は,R言語のapply関数の適用で,大変にお世話になり,ありがとうございました。
改めて御礼を申し上げます。

今回も,データの性質から,パフォーマンス向上をしたいと思っている案件です。
青木先生,どうぞ,お力を貸してください。
よろしくお願いします。

---
同じサイズ(行と列の長さが同じ)の,データフレームd1とd2があります。

d1には欠損値が含まれております。
その欠損値の位置に,同じ行と列の位置のd2の要素を代入したいと考えています。

効率よく処理できるRコードを,お示ししていただけると助かります。

行方向と列方向で多重ループを回しながら,
is.na関数を用いて,d1の要素がNAであるかどうか判定をすればできるのですが,
データ容量が大きいことから,効率化したいと考えています。

青木先生,どうぞ,ご教示をよろしくお願いいたします。

赤羽

No.21725 Re: 【R】データフレーム間の特定の要素のコピー  【青木繁伸】 2015/07/07(Tue) 04:51

1 行でできます
# テストデータ
d1 <- data.frame(
x=c(101, 102, 103, 104, 105, NA, 107, 108, 109, 110),
y=c(NA, 112, NA, 114, 115, 116, 117, NA, NA, 120),
z=c(121, 122, 123, 124, NA, 126, 127, 128, NA, NA))
d2 <- data.frame(x=201:210, y=211:220, z=221:230)
d2
d1
# d1 の欠損値に d2 を代入
d1[is.na(d1)] = d2[is.na(d1)]
d1

No.21726 【御礼】 Re: 【R】データフレーム間の特定の要素のコピー  【赤羽】 2015/07/07(Tue) 06:12

青木先生,
赤羽と申します,有難いご教示を頂戴しました。
心より,心から,御礼を申し上げます。

● 「統計学関連なんでもあり」の過去ログ--- 047 の目次へジャンプ
● 「統計学関連なんでもあり」の目次へジャンプ
● 直前のページへ戻る