全,
我正在尝试修改R包spatstat中psp对象的子集。下面是给我一个问题的代码:
set.seed(10)
mat <- matrix(runif(40), ncol=4)
mx <- data.frame(v1=sample(1:4,10,TRUE),
v2=factor(sample(letters[1:4],10,TRUE),levels=letters[1:4]))
a <- as.psp(mat, window=owin(),marks=mx)
#subset to marking v1 = 2, modify one of its endpoints
a[a$marks$v1==2]$ends$x0<-rep(5,4)这向我发出警告:
警告消息:在aa$mark$v1中,$ == 2$结束$x0 <- rep(5,4):要替换的项目数不是替换长度的倍数
修改psp对象的某些元素的正确方法是什么?我通常将此操作与dataframes一起使用,并且没有问题。我的感觉是,没有用psp类为此操作设置子集运算符([) )。
感谢您的阅读,感谢您的帮助。
发布于 2020-08-19 01:08:17
我将将此作为为类[<-添加psp方法的特性请求。
通常,我们建议不要直接更改spatstat中对象的组件,因为这会破坏它们的内部一致性。因此,[<-的方法将是最好的解决方案。
https://stackoverflow.com/questions/63460687
复制相似问题