Вывести рассчитанные значения с заголовками после сравнения - PullRequest
0 голосов
/ 13 мая 2019

Как можно распечатать заголовок значений после их сравнения? У меня есть некоторые рассчитанные значения, как указано ниже:

Value1 12
Value2 6
Value3 7
Value4 5

Как мне вывести максимум из четырех значений с заголовком?

Я могу получить максимум только среди значений, но не заголовок / описание Например ,:

"print(max(Value1,Value2,Value3,Value4))"

дает мне:

"12"

но мне нужен вывод:

"Max. value is Value1 = 12"

Возможно ли это?

Ответы [ 2 ]

1 голос
/ 13 мая 2019

Предполагая, что значения хранятся в виде отдельных числовых объектов, как показано ниже, и именуются с помощью некоторого шаблона "ValueX", мы можем поместить их все в список, а затем получить индекс для max / min и paste:

# example data
Value1 <- 12
Value2 <- 6
Value3 <- 7
Value4 <- 5

# put all in a named vector
x <- mget(ls()[ grepl("^Value", ls()) ])

# then paste
ix <- which.max(x)
paste("Max. value is", names(x[ ix ]), "=", x[ ix ])
# [1] "Max. value is Value1 = 12"
0 голосов
/ 13 мая 2019

Возможное решение может быть таким:

c <- data.frame(a = c("Value1", "Value2", "Value3"), b = c("4","9","5"), stringsAsFactors = FALSE)

print(paste("Max. value is", str_c(c[which(c$b == max(c$b)), 1], c[which(c$b == max(c$b)), 2], sep = " = "), sep = " "))
...