質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
R

R言語は、「S言語」をオープンソースとして実装なおした、統計解析向けのプログラミング言語です。 計算がとても速くグラフィックも充実しているため、数値計算に向いています。 文法的には、統計解析部分はS言語を参考にしており、データ処理部分はSchemeの影響を受けています。 世界中の専門家が開発に関わり、日々新しい手法やアルゴリズムが追加されています。

Q&A

解決済

2回答

292閲覧

[R] 2列に格納されている文字列が一致しているか判別するコード

going_thedis

総合スコア1

R

R言語は、「S言語」をオープンソースとして実装なおした、統計解析向けのプログラミング言語です。 計算がとても速くグラフィックも充実しているため、数値計算に向いています。 文法的には、統計解析部分はS言語を参考にしており、データ処理部分はSchemeの影響を受けています。 世界中の専門家が開発に関わり、日々新しい手法やアルゴリズムが追加されています。

0グッド

0クリップ

投稿2022/11/03 10:08

編集2022/11/03 10:16

[実装したいこと]

R言語で2列に格納されている文字列が一致しているかどうかにより、それぞれ別の値を返すように
プログラムしたいです。

具体的には、

イメージ説明

Answerの列とPress_Key$Valueの列で、同じ行の文字(F or J)が一致していれば(FとF or
JとJ)、1を返し、一致していなければ(FとJ or JとF)0と返すようにし、
その値が格納されたものをを新たな列(e.g. Match)として加えたいです。

上記画像の場合ですと、11行目のみ値が0となり、他の行は全て1の値をもつ列を新たに作成したいです。

1・0と書いていますが、TRUE・FALSEのような値でも構いません。

ネットで検索しましたが、類似する質問が見当たらず、私自身初学者なため、何から手をつければいいかわからない状況です。

解決策をご存じの方がいましたら、教えていただければ幸いです。

補足情報(FW/ツールのバージョンなど)

ここにより詳細な情報を記載してください。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答2

0

素のRだけで対処する場合

df1 <- data.frame(A=c("F","F","F","J","J"), P=c("F","F","J","J","J")) df1$Match <- df1$A==df1$P
> df1 A P Match 1 F F TRUE 2 F F TRUE 3 F J FALSE 4 J J TRUE 5 J J TRUE >

投稿2022/11/03 11:47

KojiDoi

総合スコア13671

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

going_thedis

2022/11/03 18:37 編集

ご回答ありがとうございます。 ==を使用するのがポイントだったのですね。非常に勉強になりました。ありがとうございました。
guest

0

ベストアンサー

dplyr を使う場合。

r

1suppressMessages(library(dplyr)) 2 3df <- data.frame( 4 Answer = c(rep('F', 11), rep('J', 2)), 5 `Press_Key$Value` = c(rep('F', 10), rep('J', 3)), 6 check.names = FALSE 7) 8 9df <- df %>% mutate(Match = as.integer(Answer == `Press_Key$Value`)) 10df 11 12# 13 Answer Press_Key$Value Match 141 F F 1 152 F F 1 163 F F 1 174 F F 1 185 F F 1 196 F F 1 207 F F 1 218 F F 1 229 F F 1 2310 F F 1 2411 F J 0 2512 J J 1 2613 J J 1

投稿2022/11/03 10:54

melian

総合スコア19771

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

going_thedis

2022/11/03 18:41

ご回答ありがとうございます。 一致しているかcheckするには==の使用がポイントだったのですね。 また、数値として返す場合はintegar(numeric)をつけるのも勉強になりました。 求めていた答えに最も近かったので、ベストアンサーとさせていただきます。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問