如何解决如何将数据框投射到具有时间维度的星星对象?
假设我有一个包含空间列 (x,y)、一个时间列 (time) 和一个数据列 (value) 的数据框。如何使用 > lim(1/5)
[1] 5.12e-07
> fn<-1/12
> lim(fn)
[1] 3.34898e-07
正确地将其强制转换为星星对象?
st_as_stars
这是数据框的原始顺序:
df <- expand_grid(time=1:10,x=1:10,y=1:10)
df$value <- 1:1000
当我尝试将数据框转换为 > head(df)
# A tibble: 6 x 4
time x y value
<int> <int> <int> <int>
1 1 1 1 1
2 1 1 2 2
3 1 1 3 3
4 1 1 4 4
5 1 1 5 5
6 1 1 6 6
对象时,此处指定错误:
stars
s <- st_as_stars(df,dimensions=st_dimensions(time=sort(unique(df$time)),x=sort(unique(df$x)),y=sort(unique(df$y)),point=TRUE),dims=c('time','x','y'))
并且 (2) 将星星对象转换回数据框显示数据“值”的顺序与原始数据框不同。
> s
stars object with 3 dimensions and 2 attributes
attribute(s):
y value
Min. : 1.0 Min. : 1.0
1st Qu.: 3.0 1st Qu.: 250.8
Median : 5.5 Median : 500.5
Mean : 5.5 Mean : 500.5
3rd Qu.: 8.0 3rd Qu.: 750.2
Max. :10.0 Max. :1000.0
dimension(s):
from to offset delta refsys point values x/y
time 1 10 0.5 1 NA NA NULL [x]
x 1 10 10.5 -1 NA NA NULL [y]
y 1 10 0.5 1 NA NA NULL
如何正确地将数据框来回转换为 > head(as.data.frame(s))
time x y y.1 value
1 1 10 0.5 1 91
2 2 10 0.5 1 191
3 3 10 0.5 1 291
4 4 10 0.5 1 391
5 5 10 0.5 1 491
6 6 10 0.5 1 591
对象?
stars
对象和方法非常有用,但我很困惑为什么我不能解决这个看似简单的数据转换。任何帮助将不胜感激。
解决方法
你试过了吗
st_as_stars(df,dims = c("x","y","time"))
?
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。