比较后打印带有标题的计算值

时间:2019-05-13 07:41:45

标签: r max min

比较值后如何打印值的标题? 我有一些按以下方式存储的计算值:

Value1 12
Value2 6
Value3 7
Value4 5

如何在标题的四个值中打印最大值?

我只能获得值中的最大值,但不能获得标题/描述 例如:

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

给我:

"12"

但是我需要输出为:

"Max. value is Value1 = 12"

这可能吗?

2 个答案:

答案 0 :(得分:1)

假设值存储为单个数字对象,如下所示,并用某种模式"ValueX"命名,我们可以将它们全部放入列表中,然后获取max / min和paste的索引:< / p>

# 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"

答案 1 :(得分:0)

可能的解决方案是这样的:

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 = " "))