小编MaM*_*aMu的帖子

R_Extracting SpatialPolygonsDataFrame中的坐标

是否只有我从SpatialPolygonsDataFrame对象中提取多边形坐标的问题?我能够提取对象(ID,plotOrder)但不是坐标(coords)的其他槽.我不知道我做错了什么.请在下面找到我的R会话,其中有两个多边形bdryDataSpatialPolygonsDataFrame对象.

> bdryData
An object of class "SpatialPolygonsDataFrame"
Slot "data":
  ID GRIDCODE
0  1        0
1  2        0

Slot "polygons":
[[1]]
An object of class "Polygons"
Slot "Polygons":
[[1]]
An object of class "Polygon"
Slot "labpt":
[1] 415499.1 432781.7

Slot "area":
[1] 0.6846572

Slot "hole":
[1] FALSE

Slot "ringDir":
[1] 1

Slot "coords":
         [,1]     [,2]
[1,] 415499.6 432781.2
[2,] 415498.4 432781.5
[3,] 415499.3 432782.4
[4,] 415499.6 432781.2



Slot …
Run Code Online (Sandbox Code Playgroud)

r geospatial slot

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

R - 基于条件子集到矩阵组

我正在尝试根据列中的特定值对矩阵进行子集化.但我希望我的子集在许多单独的矩阵中.对于例如,说我有一个矩阵ccc

aaa=c(1,1,1,2,5,1,2,1,1,3,1,1,1,1,1,1,4)
bbb=c(4,4,4,4,3,3,3,3,2,2,2,2,3,4,5,6,7)
ccc=cbind(aaa,bbb)
Run Code Online (Sandbox Code Playgroud)

我想使用一个条件进行子集,ccc[,1]==1同时我希望将子集划分为由断点分隔的几个矩阵.休息时间基于aaa==1.为了说清楚,我需要以下列方式输出:

ddd1
     aaa bbb
[1,]   1   4
[2,]   1   4
[3,]   1   4

ddd2
aaa bbb 
  1   3 

ddd3
     aaa bbb
[1,]   1   3
[2,]   1   2

ddd4
     aaa bbb
[1,]   1   2
[2,]   1   2
[3,]   1   3
[4,]   1   4
[5,]   1   5
[6,]   1   6
Run Code Online (Sandbox Code Playgroud)

ddd1,..,ddd4作为子集矩阵.我希望我说清楚.有什么建议怎么办?

r subset

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

使用 dplyr 管道替换对角元素

我想在管道过程中替换矩阵的对角线元素,但无法找到实现此目的的方法。我知道我可以使用函数替换对角线元素diag(),但我只是不知道如何diag()在管道过程中使用函数。下面给出了示例数据,我希望将以下步骤放在管道过程中。提前致谢。

aa <- matrix(1:25, nrow =5) 
diag(aa) <- NA
Run Code Online (Sandbox Code Playgroud)

r dplyr

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

用已知截距拟合多项式

我正在使用lm(y~poly(x,2))适合数据的二阶多项式。但是我只是找不到指定已知拦截值的方法。如何使用来拟合具有已知截距值(例如“ k”)的多项式模型lm

r linear-regression intercept polynomials

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

使用约束来使用nlsLM()

nlsLM {minpack.lm}用来找到最适合数据集的参数ab函数的值myfun,mydata.

mydata=data.frame(x=c(0,5,9,13,17,20),y = c(0,11,20,29,38,45))

myfun=function(a,b,r,t){
  prd=a*b*(1-exp(-b*r*t))
  return(prd)
}
Run Code Online (Sandbox Code Playgroud)

和使用 nlsLM

myfit=nlsLM(y~myfun(a,b,r=2,t=x),data=mydata,start=list(a=2000,b=0.05),
                  lower = c(1000,0), upper = c(3000,1))
Run Code Online (Sandbox Code Playgroud)

有用.但是现在我想引入一个约束条件a*b<1000.我查看了可nlsLM用于设置约束的选项nls.lm.control.但它没有多大帮助.有人可以帮助我或建议一个不同的方法吗?

r constraints nls

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

R_使用 for 循环在同一图形上绘制多个图

我有 2 个数据框,mydf1 和 mydf2

> mydf1
  id a  b  c
1  1 2 10  2
2  2 3 11  4
3  3 5 12  6
4  4 7 13  8
5  5 8 14 10
> mydf2
  id  a  b  c
1  1  4 20  4
2  2  6 22  8
3  3 10 24 12
4  4 14 26 16
5  5 16 28 20
Run Code Online (Sandbox Code Playgroud)

我想根据 id 绘制变量 a、b 和 c(下面给出示例图)。我也想要变量 b 和 c 的类似图表,并且我想在循环中执行此操作,然后将其导出到本地文件夹。所以,我使用以下代码

for …
Run Code Online (Sandbox Code Playgroud)

plot for-loop r

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

在循环中命名jpg文件

我正在进行循环操作,从两个数据帧(obs&sim)的同一列读取并生成散点图..每个数据框中共有24列.以下脚本工作正常.

for(i in 1:24) {
  plot (obs[,i],sim[,i],xlab="obs",ylab="sim",main=substitute(paste('Lead Time (hrs) = ', a), list(a=i)))
}
Run Code Online (Sandbox Code Playgroud)

但我想保存文件夹中的每个图(C:/ RPlots /),我想在循环中也包含此操作.

我使用了以下脚本,但它没有用

for(i in 1:24) {
  jpeg('C:/RPlots/paste("myplot_", c(i), ".jpg")')
  plot (obs[,i],sim[,i],xlab="obs",ylab="sim",main=substitute(paste('Lead Time (hrs) = ', a), list(a=i)))
  dev.off()
}
Run Code Online (Sandbox Code Playgroud)

谁能帮我?

naming loops r

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

R_计算发生次数

这是我的数据框'mydf'

n       Results

1       l-m
2       m-m
3       l-m
4       l-m
5       l-m
6       l-m
7       l-m
8       l-m
9       l-m
10      l-m
11      m-l
12      l-m
...
Run Code Online (Sandbox Code Playgroud)

有成千上万的行.现在我想计算出字符串'l-m','m-m','m-l','l-l'的出现次数(假设这有0次).我使用以下方法

table(mydf[,2])  
h-h h-m l-m m-h m-m 
11   7  29   2  13 
Run Code Online (Sandbox Code Playgroud)

但我希望得到类似的东西:

a=number of occurrence of 'l-m'
b=number of occurrence of 'l-l' (even if it's zero)
...
Run Code Online (Sandbox Code Playgroud)

r count

0
推荐指数
1
解决办法
139
查看次数

R_transforming原始数据到列数据

我有一个数据帧df

 > df<-data.frame(a=letters[1:5], b=1:5, c=LETTERS[1:5])
 > df
   a  b c
1  a  1 A
2  b  2 B
3  c  3 C
4  d  4 D
5  e  5 E
Run Code Online (Sandbox Code Playgroud)

我想从上面的数据框创建一个新的数据框,只有列应该是这样的

> df1
   a
1  a
2  1
3  A
4  b
5  2
6  B
7  c
8  3
9  C
.....
Run Code Online (Sandbox Code Playgroud)

我尝试了以下内容

> df1<-data.frame(c(df[1,],df[2,],df[3,]))
> df1
  a b c a.1 b.1 c.1 a.2 b.2 c.2
1 a 1 A   b   2   B   c   3   C
Run Code Online (Sandbox Code Playgroud)

但结果是行矩阵,实际上我有数百个列和行,应该转换为一列.我该怎么做?

r transform

0
推荐指数
1
解决办法
80
查看次数