小编Rol*_*and的帖子

将点添加到R中的filled.contour - 在正确的位置

我想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()似乎也提示相对于"新"坐标系的坐标.这是为什么?

plot r

6
推荐指数
1
解决办法
4653
查看次数

在没有for循环的情况下在R中填充函数求值矩阵

我想生成一个矩阵,其值是对具有两个参数的函数的求值.

到目前为止,以下是我想要的,但我怀疑在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)

for-loop r matrix

3
推荐指数
1
解决办法
93
查看次数

Strsplit在数据框的一列上

我有一个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)

r reshape dataframe

2
推荐指数
2
解决办法
3685
查看次数

标签 统计

r ×3

dataframe ×1

for-loop ×1

matrix ×1

plot ×1

reshape ×1