如果用户提供了R不支持的颜色名称或颜色编号,则将其更改为;黄色“;
我有一个名为如果用户提供了R不支持的颜色名称或颜色编号,则将其更改为;黄色“;,r,plot,colors,R,Plot,Colors,我有一个名为pick.col的函数。此函数的用户可以提供颜色名称(例如“紫色”,“红色”等)或颜色编号(例如2,17等)作为参数 问题: 假设a提供了R不支持的颜色名称或颜色编号(例如,“非常浅棕色”或-1e16)。在这种情况下,我希望我的函数将用户错误选择的颜色名称或数字替换为“黄色” 但我如何让R检查用户提供的颜色编号或颜色编号是否受(即存在于)R的支持? pick.col = function(color) { plot(1, pch = 19, cex = 8 , col = colo
pick.col
的函数。此函数的用户可以提供颜色名称(例如“紫色”
,“红色”
等)或颜色编号(例如2
,17
等)作为参数
问题:
假设a提供了R不支持的颜色名称或颜色编号(例如,“非常浅棕色”或-1e16
)。在这种情况下,我希望我的函数将用户错误选择的颜色名称或数字替换为“黄色”
但我如何让R检查用户提供的颜色编号或颜色编号是否受(即存在于)R的支持?
pick.col = function(color) {
plot(1, pch = 19, cex = 8 , col = color)
}
pick.col(color = "yellow")
pick.col我个人会编写一个函数,将名称或数字作为参数,如果提供的类型不正确,则返回一个错误。然而,这里是你可以检查的方法。注意:我调用了函数pick\u col not pick.col
#检查整数的函数
is.wholenumber我知道R中的颜色
列出了所有支持的颜色名称。但是我不知道如何找到支持的颜色编号。colors()
命令可以打印您的所有颜色颜色编号被解释为当前调色板的索引,该索引由palete()
返回。默认调色板是数字1-8,对应于“黑色”、“红色”、“绿色3”、“蓝色”、“青色”、“洋红”、“黄色”、“灰色”
。就个人而言,我会在函数中允许数字或名称,而不是两者都允许。
pick.col <- function(color) {
color <- ifelse(color %in% colors(), color, "yellow")
plot(1, pch = 19, cex = 8 , col = color)
}
pick.col(color = "ksjdhf")
# function to check for whole numbers
is.wholenumber <- function(x, tol = .Machine$double.eps^0.5) {
abs(x - round(x)) < tol
}
pick_col <- function(color = "yellow") {
# if color is an integer
if(is.numeric(color) && is.wholenumber(color)) {
ifelse(color <= length(palette()), color, "yellow")
}
# if color is a string
else if(is.character(color)) {
ifelse(color %in% colors(), color, "yellow")
}
# anything else
else {
"yellow"
}
}