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.