0

インフルエンザ診療所の場所を示すカテゴリ変数と、「その他」のカテゴリがあります。「その他」のカテゴリを選択した参加者は、自分の場所について自由回答を行います。ほとんどの場合、これらの自由回答は既存のカテゴリのいずれかに当てはまります (たとえば、1 つのカテゴリは「公衆衛生クリニック」ですが、一部の回答者は「その他」を選択し、公衆衛生クリニックである「モール」を挙げました)。私はこれを手で簡単に行うことができますが、「モール」文字列を選択するコードを学び、論理式を使用してこれらの人々を「公衆衛生クリニック」に割り当てます (たとえば、インフルエンザ クリニックの場所の新しい変数を作成します)。

私のカテゴリ変数は「lrecflu2」で、文字列変数は「lfother」です

これまでのところ、私は持っています:

mall <- grep("MALL", Motiv82012$lfother, value = TRUE)

これにより、「MALL」を含むすべての文字列応答を含むベクトルが得られます (データフレームではすべての文字列が大文字になっています)

このベクトルを論理式で使用して、これらの人々を「公衆衛生クリニック」カテゴリに割り当てる新しい変数を作成し、「その他」を選択しなかった人々にインフルエンザクリニックの場所変数の元の値を割り当てるにはどうすればよいですか (および文字列変数に値がある) を新しいインフルエンザ クリニックの場所の変数に追加しますか?

おそらく、grep は使用するのに適切な機能でさえありません。

4

1 に答える 1

0

私が理解しているように、データフレームに列があり、ある文字値を別の文字値に再割り当てしたいと考えています。もしそうなら、あなたはほとんどそこにいました...

set.seed(1) # for generating an example
df1 <- data.frame(flu2=sample(c("MALL","other","PHC"),size=10,replace=TRUE))
df1$flu2[grep("MALL",df1$flu2)] <- "PHC"

ここでgrep()は、必要なベクトル インデックスを指定します。次に、これに基づいてベクトルをサブセット化し、それらの要素を変更します。

更新 2

これにより、data.frame使用しているものと同様のものが生成されます。

set.seed(1)
lreflu2 <- sample(c("PHC","Med","Work","other"),size=10,replace=TRUE)
Ifother <- rep("",10) # blank character vector
s1 <- c("Frontenac Mall","Kingston Mall","notMALL")
Ifother[lreflu2=="other"] <- s1
df1 <- data.frame(lreflu2,Ifother)
### alternative:
### df1 <- data.frame(lreflu2,Ifother, stringsAsFactors = FALSE)
df1

与えます:

   lreflu2        Ifother
1      Med               
2      Med               
3     Work               
4    other Frontenac Mall
5      PHC               
6    other  Kingston Mall
7    other        notMALL
8     Work               
9     Work               
10     PHC               

完全に一致する文字列を探している場合は、まったく必要ありませんgrep

df1$lreflu2[df1$Ifother=="MALL"] <- "PHC"

の使用regex:

df1$lreflu2[grep("Mall",df1$Ifother)] <- "PHC"

与えます:

   lreflu2        Ifother
1      Med               
2      Med               
3     Work               
4      PHC Frontenac Mall
5      PHC               
6      PHC  Kingston Mall
7    other        notMALL
8     Work               
9     Work               
10     PHC               

モード文字を持つ要素またはベクトルであるかどうかIfotherは、物事に影響しません。data.frameデフォルトでは、文字列ベクトルを因数に強制します。

于 2013-04-08T16:57:14.643 に答える