2016-02-19 65 views
2

我在網上搜索了一段時間,但並未真正找到對此特定問題的答案。 也許我不會使用正確的關鍵詞......但如果已經有這個問題的線索,請直接給我吧!r獲取具有最大值的變量名稱

讓我們說數據是這樣的:

a = 3 b = 5

現在我想找出哪一個是較大的,所以我做的:

max(a,b) 

這隻會回到我的「5」,但我想它返回「b」 我試過使用哪個()但它一直說「哪個不合邏輯」 我也試過deparse()但我得到一串「5」

感謝您提前提供任何幫助!

回答

-1
a <- 5 
b <- 4 
vector <- c(a,b) 
which.max(vector) 
vector[which.max(vector)] 
+0

它不工作,有這個問題爲好。它返回5. –

+0

非常感謝你!我想指出的一件事是,傳入矢量的a&b應該是字符串。但是當傳入which.max()應該是數字。 – alwaysaskingquestions

+0

我誤解了,我認爲約翰是高於 – andrewelamb

0

A basic approach to get variable name實現爲myfunc,一切簡潔:

myfunc <- function(v1) { 
    deparse(substitute(v1)) 
} 
a=3 
b=5 
ifelse(max(a,b),myfunc(a),myfunc(b)) 
+0

多麼有趣的方法來解決這個問題。 :) – alwaysaskingquestions

+0

但是,兩種方法都需要爲要定義的每個變量定義一個元素。我的:'myfunc(變量)'(條件函數調用),yours:''variable「'(在向量中);) –

1

感謝andrewelamb上回答一個很好的開始。 我改變一下代碼來生產出正確的答案我一直在尋找:

`a = 3 
b = 5 
v_name = ["a","b"] 
v_name[which.max(c(a,b))]` 

希望它可以幫助別人誰在未來