これは前記エラーを生成するコード行です。変数 'y'には値 '0'または '1'が含まれます。データフレームには約12種類の変数があります。私はRバージョン3.4.1を使用しています。分割のエラー== TRUE:比較(1)はアトミックとリストのタイプに対してのみ可能
set.seed(201)
library(caTools)
spl = sample.split(bank$y, 0.7)
training <- subset(bank, split == TRUE)
これは前記エラーを生成するコード行です。変数 'y'には値 '0'または '1'が含まれます。データフレームには約12種類の変数があります。私はRバージョン3.4.1を使用しています。分割のエラー== TRUE:比較(1)はアトミックとリストのタイプに対してのみ可能
set.seed(201)
library(caTools)
spl = sample.split(bank$y, 0.7)
training <- subset(bank, split == TRUE)
あなたのデータはありませんが、間違った名前でオブジェクトを呼び出すようです。
training <- subset(bank, spl == TRUE)
個人的に、私はそれが私の脳に複数の論理だが、それは同じことをやっているという理由だけで、次のことを好む:
training <- bank[ spl == TRUE, ]
あなたはさらに行くことができますが、それはあまり意味をなさないかもしれませんが、どのようにお使いに応じて、脳は働く:
training <- bank[ spl, ]
説明するために:あなたは、ベクトルを作成するには、次のとspl
と呼ば:
spl = sample.split(bank$y, 0.7)
これは、TRUE
の値に対応する行にデータフレームをサブセット化する目的で、論理ベクトルを返します。spl
です。これを行うには、subset
などを使用します。 subset
は、サブセット化演算子として使用する入力(バンク)とベクトルを要求します。このベクトルは論理ベクトル「」を「使用しない」にはTRUE
、「使用しない」にはFALSE
です。あなたのサブセットパラメータはspl
です。これはTRUE,TRUE,FALSE,....
のように見えますので、subset
に直接渡すことができます。
spl <- c(T,T,T,F,F)
> spl
[1] TRUE TRUE TRUE FALSE FALSE
> spl == TRUE
[1] TRUE TRUE TRUE FALSE FALSE
あなたは、交換可能にspl
またはspl==TRUE
を使用することができます理由です:論理ベクトルの場合には、「TRUE ==」でベクトルを渡すと、実際に同じベクトルを返すこと
は注意してください。
また、ようこそ: – rosscova
私はサブセット関数を数回使用し、 '='は動作しません。 '='は、 'bank'と同じデータフレームを持つトレーニングセットを生成します。 '=='はこのデータセットを除いて常に働きました。 ありがとう、ここにいることをうれしく思います。まだ場所を見つけて:) – Space
申し訳ありませんが、入力する前に、サブセットに比較演算子が必要だと思います。私の悪い。 – rosscova