0

これは私の例のマトリックスです

goog    appl    JPM    BAC    BYD     msft   TIBX
700.30  500.43  43.56  15.34  23.87  32.33   20.44
800.99  600.23  45.33  14.58  32.55  32.45   21.44
750.34  490.22  43.22  16.34  54.22  34.22   19.22 
690.00  540      0     19.45  27.44  36.26   24.54
790.33  650     45.00  18.34  29.47  34.56   23.98

今日から前日までの価格の差で別のマトリックスを作成する必要があります。使用して(diff(mat[2,1],mat[2,2])sapplyましたが、正しい結果を得ることができず、diff(mat[2,1],mat[2,2])numeric(0) が得られます。理由がわからない。出力は次のようになるはずです

goog    appl     JPM     BAC    BYD     msft     TIBX
700.30  500.43   43.56   15.34  23.87   32.33    20.44
100.69  99.80    1.84   -0.80   9.55    0.12     1.44
-50.34 -109.99   -2.11   2.34   12.22   0.82    -2.22 
-60.30  49.88    -43.22  3.45   -27.44  2.26     3.54
100.33  90       1.98    2.34   2.47    0.56    -0.98
4

2 に答える 2

0

を使用してこれを試してくださいapply

あなたのデータ:

mat <- read.table(text="goog    appl    JPM    BAC    BYD     msft   TIBX
700.30  500.43  43.56  15.34  23.87  32.33   20.44
800.99  600.23  45.33  14.58  32.55  32.45   21.44
750.34  490.22  43.22  16.34  54.22  34.22   19.22 
690.00  540      0     19.45  27.44  36.26   24.54
790.33  650     45.00  18.34  29.47  34.56   23.98", header=TRUE)

rbind(mat[1, ], apply(mat, 2, diff))

##     goog    appl    JPM   BAC    BYD  msft  TIBX
## 1 700.30  500.43  43.56 15.34  23.87 32.33 20.44
## 2 100.69   99.80   1.77 -0.76   8.68  0.12  1.00
## 3 -50.65 -110.01  -2.11  1.76  21.67  1.77 -2.22
## 4 -60.34   49.78 -43.22  3.11 -26.78  2.04  5.32
## 5 100.33  110.00  45.00 -1.11   2.03 -1.70 -0.56
于 2013-10-03T15:18:00.107 に答える