我想filled.contour使用以下代码为现有的绘图添加一个点:
MyFunction <- function(x,y){
return(dnorm(sqrt(x^2+y^2)))
}
wrapper <- function(x, y, my.fun, ...) {sapply(seq_along(x), FUN = function(i) my.fun(x[i], y[i], ...))}
meshstep <- 0.5
x<- seq(-20,20,meshstep)
y <-seq(-20,20,meshstep)
z <- outer(x,y,FUN = wrapper, my.fun=MyFunction)
filled.contour(x,y,z, col=rev(heat.colors(n=20, alpha=0.7)), nlevels=15)
points(0,0)
Run Code Online (Sandbox Code Playgroud)
我很惊讶points(0,0)没有给出情节的原点,但大致位于x = 10,y = 0.此外,locator()似乎也提示相对于"新"坐标系的坐标.这是为什么?
我想生成一个矩阵,其值是对具有两个参数的函数的求值.
到目前为止,以下是我想要的,但我怀疑在R中有一个更好的方法,不使用for循环.
x <- c(0.01, 0.1,1,10,100)
n <- length(x)
M <- matrix(NA, nrow=n, ncol=n)
for (i in 1:n){
for (j in 1:n){
M[i,j]<-x[i]^x[j]
}
}
Run Code Online (Sandbox Code Playgroud) 我有一个data.frame变量是一个向量(或列表),如下所示:
MyColumn <- c("A, B,C", "D,E", "F","G")
MyDF <- data.frame(group_id=1:4, val=11:14, cat=MyColumn)
# group_id val cat
# 1 1 11 A, B,C
# 2 2 12 D,E
# 3 3 13 F
# 4 4 14 G
Run Code Online (Sandbox Code Playgroud)
我想要一个新的数据框,其中包含与向量一样多的行
FlatColumn <- unlist(strsplit(MyColumn,split=","))
Run Code Online (Sandbox Code Playgroud)
看起来像这样:
MyNewDF <- data.frame(group_id=c(rep(1,3),rep(2,2),3,4), val=c(rep(11,3),rep(12,2),13,14), cat=FlatColumn)
# group_id val cat
# 1 1 11 A
# 2 1 11 B
# 3 1 11 C
# 4 2 12 D
# 5 2 12 E
# 6 …Run Code Online (Sandbox Code Playgroud)