2017-12-25 15 views
2

私はRの整数除算(%/%)で遊んでいましたが、質問があります。私は整数除算の結果のクラスが整数でないのはなぜですか?

class(as.integer(4) %/% 2) 

を行うと、結果は

[1] "numeric" 

は私が

[1] "integer" 

を期待されているのはなぜでないクラスの整数の整数の除算の結果?

私が除数を整数に変更すると、結果は整数になります。しかし、私は理由を説明するために文書で何も見つけることができませんでした。誰でも説明できますか?

+0

2/4を分割しようとすると、0.5になることがあります。結果を "as.integer"で囲みます。 – SeReGa

+8

'?"%/% "'、 'Value'セクションから:どちらかの引数が複雑な場合、結果は複雑になります。そうでない場合は、 数値が の数値になります。両方の引数が整数型の場合、 '/'および '^'の結果は の数値であり、他の演算子の場合は+ 、警告付きで「NA_integer_」として を返しました)。 – nicola

+3

これはclass(2)が数値を与えるからです。つまり、数値で割り算すると数値が得られ、整数に変換されません。しかし、整数除算は、整数のクラスではなく、階を与えます。 –

答えて

2

@Nicolaは、コメントにdocリファレンスを提供しました。私は答えが単純だと思います:数値を含む演算は数値のままです - 両方の引数が整数の場合にのみ、結果は整数のままです。皆さんありがとう!

関連する問題