如何为R中的函数向量指定与参数相同的值?
我在R中有这个代码:如何为R中的函数向量指定与参数相同的值?,r,apply,R,Apply,我在R中有这个代码: RdWh <- colorRampPalette(c("red", "white")) GrWh <- colorRampPalette(c("green", "white")) BlWh <- colorRampPalette(c("blue", "white")) color.gradient.3 <- c(RdWh, GrWh, BlWh) 如何实现这一点?您可以这样做 cg3 <- function(n) sapply(color.g
RdWh <- colorRampPalette(c("red", "white"))
GrWh <- colorRampPalette(c("green", "white"))
BlWh <- colorRampPalette(c("blue", "white"))
color.gradient.3 <- c(RdWh, GrWh, BlWh)
如何实现这一点?您可以这样做
cg3 <- function(n) sapply(color.gradient.3, function(x) x(n))
cg3(10)
[,1] [,2] [,3]
[1,] "#FF0000" "#00FF00" "#0000FF"
[2,] "#FF1C1C" "#1CFF1C" "#1C1CFF"
[3,] "#FF3838" "#38FF38" "#3838FF"
[4,] "#FF5555" "#55FF55" "#5555FF"
[5,] "#FF7171" "#71FF71" "#7171FF"
[6,] "#FF8D8D" "#8DFF8D" "#8D8DFF"
[7,] "#FFAAAA" "#AAFFAA" "#AAAAFF"
[8,] "#FFC6C6" "#C6FFC6" "#C6C6FF"
[9,] "#FFE2E2" "#E2FFE2" "#E2E2FF"
[10,] "#FFFFFF" "#FFFFFF" "#FFFFFF"
cg3为了避免编写大量对colorrmppalete()
的调用,您可以将颜色向量放入一个列表,color
,并通过sapply()
运行该列表,在该列表中,我们还可以在每次运行时同时调用n=10
。然后根据需要使用c()
进行换行以获得向量结果
color <- list(RdWh = c("red", "white"), GrWh = c("green", "white"), BlWh = c("blue", "white"))
c(sapply(color, function(x) colorRampPalette(x)(10)))
color这个怎么样:
color.gradient.3 <- function(n){
RdWh <- colorRampPalette(c("red", "white"))
GrWh <- colorRampPalette(c("green", "white"))
BlWh <- colorRampPalette(c("blue", "white"))
c(RdWh(n), GrWh(n), BlWh(n))
}
color.gradient.3(10)
color.gradient.3刚刚lappy(color.gradient.3,函数(x)x(10))
(您可能希望取消列出结果)。谢谢,您能将其写入答案,并将结果输出为向量吗?我如何获得向量?它是一个矩阵,因此可以作为向量(列)处理-例如cg3(10)[15]
与cg3(10)[5,2]
或“#71FF71”
如何获得向量?@lanselibai-现在是向量了
color.gradient.3 <- function(n){
RdWh <- colorRampPalette(c("red", "white"))
GrWh <- colorRampPalette(c("green", "white"))
BlWh <- colorRampPalette(c("blue", "white"))
c(RdWh(n), GrWh(n), BlWh(n))
}
color.gradient.3(10)
color.gradient.3 <- function(n){
RdWh <- colorRampPalette(c("red", "white"))
GrWh <- colorRampPalette(c("green", "white"))
BlWh <- colorRampPalette(c("blue", "white"))
c(RdWh(n/3), GrWh(n/3), BlWh(n/3))
}
color.gradient.3(30)