1

私は2つのベクトルを持っています:

a <- c(ceiling(seq(0, top, length.out = 20)))

b <- c(floor(seq(100, bottom, length.out = 20)))

a : 1  2  2  2  3  3  3  4  4  4  5  5  5 .....

b : 100  98  96  95  93  91  90  88  86  85  83  82 .....

ベクター項目を交互に配置し、追加の変数を追加して、データ フレームを作成したいと思います。ベクトル a コンポーネントの場合は 1、ベクトル b コンポーネントの場合は -1。

number sign
1      1
100    -1
2      1
98    -1

等...

また、一方のベクトルがもう一方のベクトルよりも長い場合 (これ以上代替可能なものがない場合)、その残りの値がデータ フレームの最後に追加されます。私はこのようなものを持っています:

for (n in [1:length(a)]) {
dataframe[nrow(dataframe)+1,] <- c(a[n],1)
dataframe[nrow(dataframe)+1,] <- c(b[n],-1)
}

これは、各ベクトルから最初の値を追加するだけで、次を返します: エラー: 予期しない '}' in " }"

私はここで途方に暮れています..助けていただければ幸いです。ありがとうございました!

4

2 に答える 2

5

rbindcbind、および を使用するだけas.vectorです。

a <- c(ceiling(seq(0, 5, length.out = 10)))
b <- c(floor(seq(100, 5, length.out = 10)))
a
#  [1] 0 1 2 2 3 3 4 4 5 5
b
#  [1] 100  89  78  68  57  47  36  26  15   5
cbind(as.vector(rbind(a, b)), c(1, -1))
#       [,1] [,2]
#  [1,]    0    1
#  [2,]  100   -1
#  [3,]    1    1
#  [4,]   89   -1
#  [5,]    2    1
#  [6,]   78   -1
#  [7,]    2    1
#  [8,]   68   -1
#  [9,]    3    1
# [10,]   57   -1
# [11,]    3    1
# [12,]   47   -1
# [13,]    4    1
# [14,]   36   -1
# [15,]    4    1
# [16,]   26   -1
# [17,]    5    1
# [18,]   15   -1
# [19,]    5    1
# [20,]    5   -1

## Or, if you want a data.frame
## data.frame(A = as.vector(rbind(a, b)), B = c(1, -1))
于 2013-10-25T17:22:58.253 に答える