是否只有我从SpatialPolygonsDataFrame
对象中提取多边形坐标的问题?我能够提取对象(ID
,plotOrder
)但不是坐标(coords
)的其他槽.我不知道我做错了什么.请在下面找到我的R会话,其中有两个多边形bdryData
的SpatialPolygonsDataFrame
对象.
> 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) 我正在尝试根据列中的特定值对矩阵进行子集化.但我希望我的子集在许多单独的矩阵中.对于例如,说我有一个矩阵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
作为子集矩阵.我希望我说清楚.有什么建议怎么办?
我想在管道过程中替换矩阵的对角线元素,但无法找到实现此目的的方法。我知道我可以使用函数替换对角线元素diag()
,但我只是不知道如何diag()
在管道过程中使用函数。下面给出了示例数据,我希望将以下步骤放在管道过程中。提前致谢。
aa <- matrix(1:25, nrow =5)
diag(aa) <- NA
Run Code Online (Sandbox Code Playgroud) 我正在使用lm(y~poly(x,2))
适合数据的二阶多项式。但是我只是找不到指定已知拦截值的方法。如何使用来拟合具有已知截距值(例如“ k”)的多项式模型lm
?
我nlsLM {minpack.lm}
用来找到最适合数据集的参数a
和b
函数的值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
.但它没有多大帮助.有人可以帮助我或建议一个不同的方法吗?
我有 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) 我正在进行循环操作,从两个数据帧(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)
谁能帮我?
这是我的数据框'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) 我有一个数据帧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 ×9
constraints ×1
count ×1
dplyr ×1
for-loop ×1
geospatial ×1
intercept ×1
loops ×1
naming ×1
nls ×1
plot ×1
polynomials ×1
slot ×1
subset ×1
transform ×1