Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/vba/15.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
R 如果最低分数低于其列平均值,则创建一个句子_R - Fatal编程技术网

R 如果最低分数低于其列平均值,则创建一个句子

R 如果最低分数低于其列平均值,则创建一个句子,r,R,这就是我所拥有的: canada <- c(90, 50, 90) korea <- c(60, 30, 90) iran <- c(40, 20, 40) fruit <- rbind(canada, korea, iran) colnames(fruit) <- c("apple", "banana", "orange") price <- function(val){ val <- tolower(val) # assuming all ro

这就是我所拥有的:

canada <- c(90, 50, 90)
korea <- c(60, 30, 90)
iran <- c(40, 20, 40)
fruit <- rbind(canada, korea, iran)
colnames(fruit) <- c("apple", "banana", "orange")

price <- function(val){
  val <- tolower(val) # assuming all row names are in lower case
  myrow <- fruit[val,]
  nation <- tools::toTitleCase(val)

  name.max <- names(myrow)[which.max(c(myrow))]
  name.min <- names(myrow)[which.min(c(myrow))]
  score.max <- c(myrow)[which.max(c(myrow))]
  score.min <- c(myrow)[which.min(c(myrow))]

  range <- c(paste0(nation, " has cheap fruit, ", score.min, " cents for one ", name.min, "."))
  cat(range)
}

> price("iran")
Iran has cheap fruit, 20 cents for banana.
我总是可以手动输入列平均值并使用操作符号,但我希望是否有一个功能可以整合到我目前拥有的功能中。

类似的功能

canada <- c(90, 50, 90)
korea <- c(60, 30, 90)
iran <- c(40, 20, 40)
fruit <- rbind(canada, korea, iran)
colnames(fruit) <- c("apple", "banana", "orange")

price <- function(val){
  val <- tolower(val) # assuming all row names are in lower case
  myrow <- fruit[val,]
  nation <- tools::toTitleCase(val)

  name.min <- names(myrow)[which.min(c(myrow))]
  score.min <- c(myrow)[which.min(c(myrow))]

  if (score.min < mean(fruit[, name.min])) {
    cat(paste0(nation, "'s cheapest fruit is ", name.min, 
               ", and it is cheaper than the average."))
  } else {
    cat(paste0(nation, "'s cheapest fruit is ", name.min, 
               ", but it is still more expensive than the average."))
  }
}

那么,情况如何?你输入国家,你得到的是最便宜的水果和价格。谢谢你花时间阅读我的问题。最便宜的水果是香蕉,但价格仍然高于平均水平。我希望电脑只在香蕉价格高于平均水平时才打印。这样就可以了!一个简单的问题。在score.min<平均值(水果[,名称.min],为什么使用name.min来获取列的意思而不是使用score.min?因为实际分数需要与每列中的所有分数进行比较,并且可能有多个匹配项。例如,如果
score.min
为90,则应选择哪一列?我必须仔细考虑。我的大脑仍在试图消化所有这些内容是现在。但是,非常感谢。这个答案将帮助我们让这个世界成为一个更安全的生活场所;我不会用它来衡量水果价格:)
canada <- c(90, 50, 90)
korea <- c(60, 30, 90)
iran <- c(40, 20, 40)
fruit <- rbind(canada, korea, iran)
colnames(fruit) <- c("apple", "banana", "orange")

price <- function(val){
  val <- tolower(val) # assuming all row names are in lower case
  myrow <- fruit[val,]
  nation <- tools::toTitleCase(val)

  name.min <- names(myrow)[which.min(c(myrow))]
  score.min <- c(myrow)[which.min(c(myrow))]

  if (score.min < mean(fruit[, name.min])) {
    cat(paste0(nation, "'s cheapest fruit is ", name.min, 
               ", and it is cheaper than the average."))
  } else {
    cat(paste0(nation, "'s cheapest fruit is ", name.min, 
               ", but it is still more expensive than the average."))
  }
}
> price("iran")
Iran's cheapest fruit is banana, and it is cheaper than the average.
> price("canada")
Canada's cheapest fruit is banana, but it is still more expensive than the average.