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

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

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

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

Q&A

解決済

1回答

449閲覧

Rで単位の異なる金額データを揃える

marohati51

総合スコア10

R

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

0グッド

0クリップ

投稿2018/12/27 00:11

初歩的な質問かと思いますが,すっかりハマってしまったので質問させてください。

1列目に会社名,2列目に単位,3列目に資産額が入っている以下のようなデータフレームがあります。

会社名,単位,資産額
A社,千円,1000
B社,円,2000000
C社,円,150000

これまでは,dplyr::filter(単位=="円")とかで単位が「円」のものだけを集めて,資産額を1000で割って,別に千円だけフィルターしていたデータフレームとrbindで繋げるようなことをしていたのですが,もう少し楽な方法はないものかと思っています。

もとのデータフレームのまま,「単位」が「円」となっている場合のみ,資産額を1000で割るような計算方法はありますでしょうか。できれば,dplyrのパイプ処理の中でできる方法が知りたいです。

よろしくお願いいたします。

sessionInfo()

R version 3.3.3 (2017-03-06)
Platform: x86_64-apple-darwin13.4.0 (64-bit)
Running under: macOS 10.13.6

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

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

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

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

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

guest

回答1

0

ベストアンサー

R

1a <- read.table(stringsAsFactors = F, header=T, sep=",", text=" 2 kaisha,tanni,shisan 3 a,senen,1000 4 b,en,2000 5 c,senen,3000 6") 7a[,"shisan2"] <- ifelse(a[,"tanni"]=="senen", a[,"shisan"]*1000, a[,"shisan"]) 8

投稿2018/12/27 04:46

KojiDoi

総合スコア13671

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

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

marohati51

2018/12/27 08:06 編集

ご回答ありがとうございました。 不十分な質問となっていましたが,実はこの「資産額」のようなものが複数続いています。 頂いたご回答を真似て, a[,3:4] <- ifelse(a[,"tanni"]=="senen", a[,3:4]*1000, a[,3:4]) としてみると,警告メッセージが出てうまくいきません。複数列について一気にやるにはどうしたらいいでしょうか... また,dplyrのパイプ処理の中で実行するのは難しいのでしょうか.. よろしくお願いいたします。
KojiDoi

2018/12/27 05:43

a[,3:4] <- 根本的なところが間違っています。新しい列を定義するんです。
marohati51

2018/12/27 12:55 編集

ありがとうございました。 ご教示頂いたifelseを,パイプの中で使うには?と調べておりましたら,if_elseが出てきまして,さらに調べていましたら,『RユーザのためのRStudio[実践]入門』(松村 優哉, 湯谷 啓明, 紀ノ定 保礼, 前田 和寛)にたどり着きました。早速購入し読んでみましたら,「gather()で1つの列に集めると楽に処理が行えるかもしれません。」 (Kindle の位置No.2520-2521,. 株式会社技術評論社. Kindle 版. )の記述を発見し,希望の処理を行うことができました。 貴重なヒントをくださいまして,ありがとうございました。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問