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

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

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

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

データバインディング

データソースと、アプリケーションやウェブページ(ウェブアプリケーション)のユーザインタフェースを静的または動的に結合する技術です。

データマイニング

データマイニングは、購買履歴やクレジットカードの利用履歴、電話の通話履歴など企業にある大量のデータを解析して、その中に隠れたパターンやルールを探し出す技術です。DMと略されることもあります。

Q&A

解決済

1回答

655閲覧

【R:データ整形】複数のキーに基づいてデータフレーム内の条件に合う行に任意の処理を加えたい

toufya

総合スコア15

R

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

データバインディング

データソースと、アプリケーションやウェブページ(ウェブアプリケーション)のユーザインタフェースを静的または動的に結合する技術です。

データマイニング

データマイニングは、購買履歴やクレジットカードの利用履歴、電話の通話履歴など企業にある大量のデータを解析して、その中に隠れたパターンやルールを探し出す技術です。DMと略されることもあります。

0グッド

0クリップ

投稿2021/05/07 02:04

前提

以下のような2種類のデータフレームがあります。

fish1 <- c("イワシ", "サンマ", "アジ") temp1 <- c(21, 20, 30) id1 <- c("A", "B", "C") df1 <- data.frame(魚 = fish1, 水温 = temp1, ID = id1) > df1 魚 水温 ID 1 イワシ 21 A 2 サンマ 20 B 3 アジ 30 C fish2 <- c("イワシ", "サンマ", "アジ", "マグロ") temp2 <- c(21, 22, 30, 31) id2 <- c("A", "C", "C", "E") df2 <- data.frame(魚 = fish2, 水温 = temp2, ID = id2) > df2 魚 水温 ID 1 イワシ 21 A 2 サンマ 22 C 3 アジ 30 C 4 マグロ 31 E

実現したいこと

df2の中で、df1と一致しているものがあれば”T"を、一致していなければ”F"を返し、4列目にその判定結果を加えたいです。イメージは以下の通り。

> df3 魚 水温 ID 判定 1 イワシ 21 A T 2 サンマ 22 C F 3 アジ 30 C T 4 マグロ 31 E F

元のデータセットはかなり膨大で、判定に関係のない変数も含まれています。
とにかく、「魚」「水温」「ID」の3項目がdf1と一致する行をdf2内で探し、新たに列を加えたいです。よろしくお願いします。

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

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

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

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

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

guest

回答1

0

ベストアンサー

df1において条件に合致しそうな行をsubsetで求め、その行数をチェックすればよさそうです。

df2$判定 <- sapply(1:nrow(df2), function(r){nrow(subset(df1, 魚==df2[r,"魚"] & 水温==df2[r,"水温"] & ID==df2[r,"ID"]))>0})

こういう雰囲気でどうでしょう。中身のチェックは大雑把にしかしていません。

投稿2021/05/07 11:51

KojiDoi

総合スコア13671

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

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問