9

私のデータベースの変数は「はい」と「いいえ」としてコード化されていますが、「1」と「2」にしたいと思います。

を使用して新しい変数を作成しようとしましたifelseが、list次のように編集すると機能しませんでした。

CA <- ifelse((CANCER == "Yes"),1
ifelse(( CANCER == "No"),2 )))

list(CA)

[[1]]
NULL
4

7 に答える 7

19

を使用したい場合はifelse

CA <- ifelse(CANCER=="Yes", 1, 2)
于 2012-08-20T04:28:28.017 に答える
7

仮定

levels(CANCER) 

戻り値

Levels: yes no

あなたがただ言うなら、あなたの場合はおそらく最も簡単です

CA<-factor(as.numeric(CANCER))

ただし、一般的にも使用できます

Cancer<-factor(CANCER)

想定より

levels(Cancer) 

戻り値

Levels: yes no

このようにレベルを変更できます

levels(Cancer)[1]<-"1"
levels(Cancer)[2]<-"2"

またはそれに応じてラベルを切り替えます。

于 2012-08-19T23:18:47.837 に答える
2

変数が要因であるかどうかを知る必要があります。仮定する

foo <- c("yes","no","no","yes")

is.factor(foo) が TRUE を返す場合、たとえば を実行した場合はfoo <- factor(foo)

levels(foo) <- c("2", "1")

他に使用する

foo[foo == "yes"] <- 1
foo[foo == "no"] <- 2

また、 list() は、あなたが思っていること (私が思うに) をしません。foo の値を表示したい場合は、単に foo と入力します。上記のコードを実行した後...

foo
[1] 1 2 2 1
于 2012-08-19T23:35:49.993 に答える
1

順序でレベルが設定された要因に強制すると、次のようになります"yes","no"

foo <- factor(c("yes","no","no","yes"),levels=c("yes","no"))

単純に数値に強制することができます:

as.numeric(foo)

これにより、次のことが得られます。

[1] 1 2 2 1
于 2012-08-20T07:55:20.590 に答える