0

問題は次のとおりです。いくつかのデータセットでシミュレーションと予測を実行しています。基本的に問題は、10k フォールドの相互検証を行うときに、元のデータの 10% をランダムに引き出しますが、結果をデータ フレーム全体に入れるときです。それらをマージすると、追加の1または2または..のようになります。

私の例は悪いので、別の投稿から借りています: R の rbind は奇妙な行名を与えます

 > tt1[2,]
         date  close emp pred
 2 1982-03-24 112.97  -1    1

 > tt2[2,]
         date  close emp pred
 2 1982-03-25 113.21   1    1

問題:

 > rbind(tt1[2,],tt2[2,])
          date  close emp pred
 2  1982-03-24 112.97  -1    1
 21 1982-03-25 113.21   1    1

私が欲しいもの:

 > rbind(tt1[2,],tt2[2,])
          date  close emp pred
 2  1982-03-24 112.97  -1    1
 2  1982-03-25 113.21   1    1

どんな助けでも素晴らしいでしょう、ありがとう。

ベスト、K

4

1 に答える 1

2

この例では、最初に投稿されたデータを使用しています。

data_1 <- structure(list(ID = 1:3, GPA = c(3, 3.5, 4)), .Names = c("ID", 
"GPA"), class = "data.frame", row.names = c("1", "2", "3"))
data_2 <- structure(list(ID = 3:5, GPA = c(3.1, 3.2, 3.3)), .Names = c("ID", 
"GPA"), class = "data.frame", row.names = c("3", "4", "5"))

ID(列が行名と一致するという事実は無視してください。)

元の行名を取得できます (必要に応じて後で適用するため)。

rbind(cbind(rn=rownames(data_1), data_1), cbind(rn=rownames(data_2), data_2))
##    rn ID GPA
## 1   1  1 3.0
## 2   2  2 3.5
## 3   3  3 4.0
## 31  3  3 3.1
## 4   4  4 3.2
## 5   5  5 3.3

これはいくつかの方法でパラメータ化できます。これが1つです:

d <- list(data_1, data_2)
do.call(rbind, lapply(d, function(x) cbind(rn=rownames(x), x)))
##    rn ID GPA
## 1   1  1 3.0
## 2   2  2 3.5
## 3   3  3 4.0
## 31  3  3 3.1
## 4   4  4 3.2
## 5   5  5 3.3
于 2013-04-13T02:08:26.743 に答える