LoginSignup
1
0

More than 3 years have passed since last update.

ハープの弦をRで簡単在庫管理 

Last updated at Posted at 2021-01-31

最近Rを始めて、その素晴らしさに感動して自分も初心者ながら何かお役に立てればと思い初投稿しました。
大変基礎的な内容で、もっと良いコードがあるかと思います。もしもっと良いコードが見つかったら適宜更新します。
コードが役に立つかというよりかはDFの変数名をコピペして使うとかの方かもしれません。

完成したcsvをハープ弾く方に渡せば喜ぶこと間違いなしです。 

ハープの弦の管理がすごく面倒な楽器です。
こちらはグランドハープ47弦のバージョンです。
グランドハープは、高音域はナイロンかガット(奏者のこだわりによる)、中音域はガット、低音域はワイヤー弦を張るようにつくられており、特に夏場に中高音域の弦がよく切れるため、気が付かないうちに在庫がなくなっていたりします。また、発注するときにどの弦か確認するのが結構面倒です。弦は①オクターブのどの位置にあるか②弦独自の番号で整理されてます。が、お店によっては両方の表記がなかったりして、とにかく面倒。ネットで調べてもあのハープのネックに弦の一覧が書いてあって、結構見づらいので、

そこで、今回はRで
〇全音域
〇高音域のナイロン
〇中高音域のガット
〇低音域のワイヤー

に分けてデータフレームにて在庫管理をするようにしてみました。本コードはグランドハープに特化していますが、今後34弦前後のレバーハープなどにも対応できたらと思います。 

以下のコードに在庫を入力していけば管理できます。 

まずは、全ての弦の在庫管理のデータフレームの作成です。なぜ00があるかというと、一番上のソ(G)は00の表記で、その次が0にファ(F)なるからです。

#all strings 〇全部の弦
Number_all  <- c("00",0:45)
octave_all <- c("above 1st G","above 1st F","1st E","1st D","1st C","1st B","1st A", "1st G", "1st F","2nd E","2nd D","2nd C","2nd B","2nd A", "2nd G", "2nd F",
            "3rd E","3rd D","3rd C","3rd B","3rd A", "3rd G", "3rd F","4th E","4th D","4th C","4th B","4th A", "4th G", "4th F","5th E","5th D","5th C","5th B","5th A", "5th G", "5th F",
            "6th E","6th D","6th C","6th B","6th A", "6th G", "6th F","7th E","7th D","7th C")
stock_all<- c(rep(0, length = 47)) 
( all    <- data.frame(Number=Number_all, Octave=octave_all, stock=stock_all) )

続いてナイロンの弦ですが、こちらは人によって張る範囲が変わります。一番可能性として広い範囲で入れてみました。

#nylon strings 〇ナイロン弦
Number_nylon  <- c("00",0:14)
octave_nylon <- c("above 1st G","above 1st F","1st E","1st D","1st C","1st B","1st A", "1st G", "1st F","2nd E","2nd D","2nd C","2nd B","2nd A", "2nd G", "2nd F")
stock_nylon<- c(rep(0, length = 16)) 
( nylon    <- data.frame(Number=Number_nylon, Octave=octave_nylon, stock=stock_nylon) )

一番頭を悩ませる、ガット弦です。太いのはそこまで切れない、とは思いますが、高音域は夏は本当によく切れます。一番在庫管理を気にしないといけない音域です。私の場合だとNo.8、2オクターブのミ(E)が在庫切れになります。 

#gut strings 〇ガット弦
Number_gut  <- c(8:33)
octave_gut <- c("2nd E","2nd D","2nd C","2nd B","2nd A", "2nd G", "2nd F",
                "3rd E","3rd D","3rd C","3rd B","3rd A", "3rd G", "3rd F","4th E","4th D","4th C","4th B","4th A", "4th G", "4th F","5th E","5th D","5th C","5th B","5th A")
stock_gut<- c(rep(0, length = 26)) 
( gut   <- data.frame(Number=Number_gut, Octave=octave_gut, stock=stock_gut) )

最後に、みんな大好きワイヤー弦!です。こちらは、定期メンテナンスで自分で張り替える時とかもあると思うのでご活用ください。たまに切れると落雷のような音がしますが、、おそらく数年に一度あるかないかのイベントでしょう。 

#wire strings 〇ワイヤー弦
Number_wire <- c(36:47)
octave_wire <- c("5th G", "5th F","6th E","6th D","6th C","6th B","6th A", "6th G", "6th F",
"7th E","7th D","7th C")
stock_wire <- c(rep(0, length = 12)) 
( wire  <- data.frame(Number=Number_wire, Octave=octave_wire, stock=stock_wire) )

ストックはポチポチとstock欄に入れて、最後csv出力で完了。readrパッケージで文字化けを防止してます。。。 ただ、そのあとエクセルで00が0に自動修正されることに要注意。

#write csv csv出力 
readr::write_excel_csv(all, "all_strings.csv")   全部の弦のcsv 
readr::write_excel_csv(nylon, "nylon_strings.csv") ナイロンのcsv
readr::write_excel_csv(gut, "gut_strings.csv")     ガットのcsv 
readr::write_excel_csv(wire, "wire_strings.csv")   ワイヤーのcsv

qiitaで需要があるのかちょっと謎ですが(笑)、Enjoy your harp life!:blush:

1
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0