二人の相性(%)を瞬時に判定するR関数 だけど,計算を簡単に行うプログラムを書くのが面倒だとちょっと...
このプログラムを入力するのが面倒くさい。
というわけで,以下のように書いてみる。
uranai = function(NAME1, NAME2, PRINT = TRUE) {
### 名前を統合 ###
x = unlist(strsplit(c(NAME1, NAME2), split = ""))
y = numeric(length(x))
y[x %in% unlist(strsplit("あぁかさたなはまらがざだばぱやゃわ", ""))] = 1
y[x %in% unlist(strsplit("いぃきしちにひみりぎじぢびぴ", ""))] = 2
y[x %in% unlist(strsplit("うぅくすつぬふむるぐずづぶぷゆゅっ", ""))] = 3
y[x %in% unlist(strsplit("えぇけせてねへめれげぜでべぺ", ""))] = 4
y[x %in% unlist(strsplit("おぉこそとのほもろごぞどぼぽよょ", ""))] = 5
### 計算 ###
for (i in 3:length(x)) {
if (PRINT) {
print(y)
}
n = length(y)
if (n == 2) {
break
}
y = (y[-n] + y[-1])%%10
}
### パーセンテージで出力 ###
cat(paste("ふたりの相性は、", 10 * y[1] + y[2], "%", " です。", sep = ""))
}
uranai("やべひろゆき", "あおきゆうこ")
uranai("うちだゆうや", "きききりん", PRINT = FALSE)
uranai("たむらゆう", "ふくたじゅんや", PRINT = TRUE)
ところで,元のプログラムで
x <- X[i]
ifelse( x == "あ" | x == "か"| ... | x == "ば" ,y[i] = 1,
ifelse(x == "い"...)...)
というのは,
y[i] = ifelse( x == "あ" | x == "か"| ... | x == "ば" , 1,
ifelse(x == "い"...)...)
などとすべし。
まあ,とにかく,ハッピー・ハッキング!!