run_r.rb

friend.rbの情報から動的にRの変数を作成させるためのRubyのコード。別に手でRのコード書いてもいいけど、面倒なので自動化した。変数になりそうなもの全部をregに入れておいてもいいけど、2^nで考えないといけないことが増えるので効きそうなものを放りこんでいった。

こんな感じの規則的なデータが生成される。

names(twitter) <- c("name","is_follow","following","followers","favorites","update","time_diff","time_mean","entry_size","is_japanese","is_tsukuba","is_friend","is_tokyo","is_blog_in_web","is_blog_in_bio","is_otaku","is_students","is_program","at_mark","is_program_in_blog","is_otaku_in_blog","is_students_in_blog","is_program_by_bayes","is_otaku_in_bio_by_bayes","is_otaku_in_entry_by_bayes")

twit <- c("following","followers","favorites","update","per","entry_size","is_students","is_program","is_friend","is_program_by_bayes","at_mark","is_japanese","time_mean")

grid <- expand.grid(following = c(0,1),followers = c(0,1),favorites = c(0,1),update = c(0,1),per = c(0,1),entry_size = c(0,1),is_students = c(0,1),is_program = c(0,1),is_friend = c(0,1),is_program_by_bayes = c(0,1),at_mark = c(0,1),is_japanese = c(0,1),time_mean= c(0,1))
#!/usr/bin/ruby

ruby_file_name = "friend.rb"
r_file_name = "twitter.R"

r_file = File.open(r_file_name,'w')
ruby_file = File.open(ruby_file_name,'r')

label = []
while text = ruby_file.gets do
  if(/##(.*)/ =~ text)
    label.push $1
  end
end

names = label.join('","')

reg = ["following","followers","favorites","update","per","entry_size","is_students","is_program","is_friend","is_program_by_bayes","at_mark","is_japanese","time_mean"]

twit = reg.join('","')
grid = reg.join(' = c(0,1),')

r_file.puts <<EOS

names(twitter) <- c("#{names}")

twit <- c("#{twit}")

grid <- expand.grid(#{grid}= c(0,1))
EOS

ruby_file.close
r_file.close