質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
R

R言語は、「S言語」をオープンソースとして実装なおした、統計解析向けのプログラミング言語です。 計算がとても速くグラフィックも充実しているため、数値計算に向いています。 文法的には、統計解析部分はS言語を参考にしており、データ処理部分はSchemeの影響を受けています。 世界中の専門家が開発に関わり、日々新しい手法やアルゴリズムが追加されています。

Q&A

解決済

1回答

11007閲覧

列名、列数が異なる2データを結合するrbindの使い方

I_KAMAKURA

総合スコア11

R

R言語は、「S言語」をオープンソースとして実装なおした、統計解析向けのプログラミング言語です。 計算がとても速くグラフィックも充実しているため、数値計算に向いています。 文法的には、統計解析部分はS言語を参考にしており、データ処理部分はSchemeの影響を受けています。 世界中の専門家が開発に関わり、日々新しい手法やアルゴリズムが追加されています。

0グッド

0クリップ

投稿2018/10/12 07:58

よくあることだと思うのですが、明確な解答が見つからないため質問させていただきます。

###列名、列数が異なる配列をrbind(もしくは他の方法で)1つに結合する方法

上記についてご教示ください。

具体的に行なっていた作業を紹介させていただきますと

ステップワイズ法を用いた重回帰モデルを複数作成しておりまして、そのモデル1つ1つの回帰係数を全てまとめた1つのファイルを作成したいと考えております。

そこで

lang

1modelname <- "model1" 2lm_train <- step(lm(O_variable~. , date = E_variable)) 3rbind(modelname, lm_train$call)

という風にして逐次的に複数の(名前、モデル)を繋げたファイルをcsvにして出力したいと考えています。

もちろん上のでは動きませんが、rbindをpythonの.appendのように柔軟に使える方法をご教示いただけませんでしょうか?

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

ベストアンサー

lmtrain$codeがどんなデータなのかわかりませんが、たぶんベクトルなのだろうと勝手に想像しておきます。

csvに出力するべき所定の列の構成に対して、それぞれの列のデータがlmtrain$codeにあるかチェックし、あるならその値、無いときはNAを入れたベクトルを作り、rbindしていけばいいと思います。

以下、こんなイメージということで。

R

1 2# 出力する列の構成 3cols <- c("col1","col2","col3") 4 5# 適当なテストデータ 6d1 <- c(1,2,3) 7d2 <- c(1,3) 8d3 <- c(2,3) 9names(d1) <- c("col1","col2","col3") 10names(d2) <- c("col1","col3") 11names(d3) <- c("col2","col3") 12d <- list(d1, d2, d3) 13 14# 出力 15out <- data.frame() 16for(i in 1:length(d)){ 17 x <- sapply(cols, function(col){ 18 ifelse(col %in% names(d[[i]]), d[[i]][[col]], NA) 19 }) 20 out <- rbind(out, x) 21} 22colnames(out) <- cols 23print(out) 24 25write.csv(out, file="out.csv", na="", quote=F, row.names=F) 26

投稿2018/10/12 15:02

KojiDoi

総合スコア13671

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

I_KAMAKURA

2018/10/16 00:06

lm_train$callは、変数名とその回帰係数を表した2×変数の数のテーブルになります。 やはりnaで足りない列数を補完してやるしかなさそうですね。 ありがとうございました!
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問