a <- 1とすると,「0.5」と出力されますが,これを「c」と出力するにはどのようにすれば良いでしょうか。
b <- 3
c <- 0.5
min(a,b,c)
No.22908 Re: Rの出力について 【青木繁伸】 2020/05/02(Sat) 21:25
何をしたいのか本質がよく理解されないのですが。min_value_name = function(a, b, c) {のような関数を定義すると,
par = c(deparse1(substitute(a)),
deparse1(substitute(b)),
deparse1(substitute(c)))
x = min(a,b,c)
print(par[which(x == c(a, b, c))])
}> a <- 1のような結果を得ることは出来ます,しかし
> b <- 3
> c <- 0.5
> min_value_name(a, b, c)
[1] "c"
> x <- 2
> y <- 1
> z <- 5
> min_value_name(x, y, z)
[1] "y"> min_value_name(3, 2, 1)のような使い方をすると,望む結果は得られません。
[1] "1"
もし,引数の名前が必ず a, b, c であるなら,以下のような関数を定義することも出来ます。f <- function(a, b, c) {これだと,以下のような使用例になります
names = letters[1:3]
return(names[which(c(a, b, c) == min(c(a, b, c)))])
}> f(1,2,3)
[1] "a"
> f(20, 10, 40)
[1] "b"
> f(100, 200, 10)
[1] "c"
● 「統計学関連なんでもあり」の過去ログ--- 048 の目次へジャンプ
● 「統計学関連なんでもあり」の目次へジャンプ
● 直前のページへ戻る