0

私はRの初心者で、仕組みを理解しようとしてifelseいます。

私は次のような簡単なもので試しました:

ifelse(mydataframe$col1==mydataframe$col2 ,
  mydataframe$newCol<-TRUE,
  mydataframe$newCol<-FALSE  
)

mydataframe$col1col2要因です。この場合、 my newColwill alwaysになりますがFALSE、この方法で検証したため、これは間違っています。

mydataframe$newCol<- mydataframe[mydataframe$col1==mydataframe$col2]

また、ループを使用したくありませんfor。これは、通常、私が試したものに対して低速です。

私は何を間違えましたか?

4

2 に答える 2

3

ifelse()2 番目と 3 番目のパラメーターとして戻り値を受け入れます (そして代入を記述しています)。

試す:

mydataframe$newCol <-
    with(mydataframe,
         ifelse(col1 == col2,
                TRUE,
                FALSE))
于 2012-12-30T17:30:34.983 に答える
2

実際のところ、を使用する必要はありません。次のようifelse==十分です。

mydataframe$newCol <- with(mydataframe, col1 == col2)

ブールベクトルを返します。

于 2012-12-30T17:51:34.423 に答える