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

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

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

Rubyはプログラミング言語のひとつで、オープンソース、オブジェクト指向のプログラミング開発に対応しています。

Q&A

解決済

1回答

150閲覧

R についての質問です

iamomine

総合スコア13

Ruby

Rubyはプログラミング言語のひとつで、オープンソース、オブジェクト指向のプログラミング開発に対応しています。

0グッド

0クリップ

投稿2019/01/11 19:17

編集2019/01/12 01:47

C_name C_code 2000 2001 2002.....2015
A A. 30. 23. 40. ... 67
B. B. 29. 50. 29. ... 66
C. C. 11. 55. 33 ... 77

Rでこのようになっているデータを、2000〜2015の部分をC_codeの横にyear、さらにその横にそれぞれの年の値(30、29などの部分)をpovertycapという欄を作って縦に持っていきたいです。

C_name C_code year povertycap
A A. 2000. 30
: : 2001. 23
: : : :
A A 2015. 67
B. B. 2000 29
: : : :
: : : :

作りたいイメージを具体的に書くとこんな感じです!

わかりにくいと思いますが、どなたか教えてください!
よろしくお願いします!

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

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

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

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

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

退会済みユーザー

退会済みユーザー

2019/01/11 19:24

求めておられる回答はR言語でしょうか?Rubyでしょうか?
KojiDoi

2019/01/11 19:34

何が何だかさっぱりわかりません。こういう結果がほしいというのを、最初の数行でいいので実際に作って見せてください。
iamomine

2019/01/11 22:38 編集

反応いただきありがとうございます! わざわざ回答をいただいたのに申し訳ありません、、答えが欲しいのはR言語の方です! 具体的なイメージも編集で加えました! ぜひよろしくお願いします。
asm

2019/01/12 00:31

タグを修正することをおすすめします
guest

回答1

0

ベストアンサー

Ruby

1table = <<-EOS 2C_name C_code 2000 2001 2002 3A. A. 30. 23. 67. 4B. B. 29. 50. 66. 5C. C. 11. 55. 77. 6EOS 7 8tmp = table.split("\n").map(&:split).transpose 9tmp1, tmp2 = tmp.shift(2), tmp.transpose 10tmp2.map!.with_index { |e, i| e.unshift(i.zero? ? 'year' : 'povertycap') } 11new_table = (tmp1 + tmp2).transpose.map { |l| l.join("\t") }.join("\n") 12 13puts new_table 14

結果

C_name C_code year povertycap povertycap povertycap A. A. 2000 30. 29. 11. B. B. 2001 23. 50. 55. C. C. 2002 67. 66. 77.

投稿2019/01/11 19:53

編集2019/01/12 04:28
退会済みユーザー

退会済みユーザー

総合スコア0

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

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.49%

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

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

質問する

関連した質問