17

プログラムの一部 (コンパイルして実行するには不十分) を R から C++ に移植しています。私は R に詳しくありません。オンラインの参考文献を使用して問題ありませんでしたが、次の行に困惑しました。

cnt2.2<-cnt2[,-1]

私は推測しています:

  1. cnt2は 2 次元行列です
  2. cnt2.2ピリオド「.」で宣言されている新しい変数です。アルファベットと同じように使用されます。
  3. <-課題です。
  4. [,-1]配列の一部にアクセスします。[,5]すべての行、5列目のみを意味すると思いました。これが正しければ、-1 が何を指しているのかわかりません。
4

3 に答える 3

24

これは、マニュアルのセクション 2.7 で説明されています: http://cran.r-project.org/doc/manuals/R-intro.html#Index-vectors

cnt2これは、最初の列を除くすべての行とすべての列を指定する、オブジェクトへの負のインデックスです。

于 2011-09-07T15:46:25.953 に答える
18

負のインデックスは、特定の要素を(保持するのではなく)削除することをx[,-1]指定します...したがって、最初の列を削除することを指定します(行はコンマの前の最初の次元であり、列はコンマの後の2番目の次元です)。差出人?"["http://stat.ethz.ch/R-manual/R-devel/library/base/html/Extract.html):

'['-インデックス作成のみ:'i'、'j'、'...'は論理ベクトルであり、選択する要素/スライスを示します。このようなベクトルは、対応する範囲に一致するように必要に応じてリサイクルされます。'i'、'j'、'...'は負の整数にすることもでき、選択から除外する要素/スライスを示します。

于 2011-09-07T15:45:13.940 に答える
8

1) cnt2 は 2 次元行列です。

あなたが提供したコードから、それは確かにある種の2次元構造です(おそらくマトリックスです)。

2) cnt2.2 は、ピリオド「.」で宣言されている新しい変数です。アルファベットと同じように使用されます。

正しい。

3) <- は代入です。

正しい。

4) [,-1] は配列の一部にアクセスします。[,5] はすべての行、5 列目のみを意味すると思いました。これが正しければ、-1 が何を指しているのかわかりません。

[,-1]列 1 を除くすべての列を選択します。C++ とは異なり、R のインデックスはゼロではなく 1 から始まることに注意してください。

于 2011-09-07T15:47:54.923 に答える