Upload
takahiro-nakaoku
View
2.021
Download
3
Embed Size (px)
DESCRIPTION
広島県で行われた、 LT駆動開発02 で発表した資料です。 ソースコード/サンプル : https://github.com/kamera25/RubyAnalysis 私のTwitter : https://twitter.com/csc_kamera25 LT駆動開発02 : http://goo.gl/rV6qJ7
Citation preview
Rubyでやろう。データ解析導入編
情報工学科 中奥貴浩
2
実は自分。
という団体のメンバーです。
3
実は。自分
Hiroshima.rbの代表者さん
4
ゆるい。
興味があれば、Webで調べてみてください。
5
本題
6
Rubyについて
● オブジェクト指向スクリプト言語● 日本産(まつもとゆきひろ)● プログラミングを楽しむ事を重要視している言語
7
CSV
● 標準にビルトイン済み! すごく簡単!
CSV.open("member.csv","r") do |restu|p restu
end
require "csv" #←これだけでOK
一行ずつ表示するarraycsv = CSV.read("member.csv")
配列に入れる
8
CSV
● もっと便利に読み出せます。テーブルならね。
table = CSV.table("member.csv")
注意 : Rubyのバージョンが1.9以上で使えます。Ubuntu12.04とかの人は注意。
● ヘッダの名前を連想配列がとして使える。
p table[:point]
9
CSV
● 書き込みもできます。
CSV.open("output.csv","w") do |csv_writer|csv_writer <<["nakamura","prosessor","Hiroshima City University"]csv_writer <<["kodama", "Ph.D", "Hiroshima University"]
end
10
XML
● すごく簡単です。
require "rexml/document"
● 読み込みの方法
file = REXML::Document.new(open("sweet.xml"))
11
XML
● 表示(添え字なし)
p file.elements["oyastu/box/c"].textp file.elements["oyastu/box/c"].text
p file.elements["oyastu/box[2]/c[1]"].text
● 表示(添え字あり)
12
XML
● 全部を表示させます!
file.elements.each("oyastu/box/c") do |element|p element.text
end
● textの部分を変えれば、色々できる。
~.previous_element.text 前のタグを表示
~.next_element.text 次のタグを表示
~.name タグ名
~.size 要素数の合計
~.attributes["hoge"] 属性の値を取る
13
XML
● 書き込み
xfile = REXML::Document.newxfile << REXML::XMLDecl.new('1.0', 'UTF-8') #へッダー
#要素の書き込みfeed = xfile.add_element("feed", {"url" => "http://it-hiroshima.ac.jp"}) feed.add_element("title", {'type' => 'text'}).add_text( "広島工業大学のサイト")
xfile.write(path.xml) #保存
14
JSON
● やっぱ簡単(ビルトイン)
require "json"
注意 : Rubyのバージョンが1.9以上で使えます。Ubuntu12.04とかの人は注意。
15
JSON
● 使うデータ(pjson.json)[ { "name" : "Hiroshima institute of technology", "url" : "http://it-hiroshima.ac.jp", "department" : ["Engnieering", "Baiology", "Computer", "Enviromental"], "iscolleage" : true },
{ "name" : "Shimane University",
"url" : "http://shimane-u.ac.jp","department" : ["Law", "Education", "Medical", "Engnieering"],
"iscolleage" : true}
]
16
JSON
open("pjson.json") do |data|jsondata = JSON.load( data)
end
● データの読み込み
連想配列として生成されます。
17
JSON
● データの出力
cdata = [ {"name" => "Hiroshima City University"} , { "url" => "http://www.hiroshima-cu.ac.jp/"}]
open("savjson.json", "w") do |file|JSON.dump( cdata, file)
end
普通に配列作る
保存処理
18
まとめ
Rubyでもデータ処理簡単にできますよ。
19
Rubyも時々使ってくださいネ!!
ご清聴ありがとうございました。