微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

如何将数据框投射到具有时间维度的星星对象?

如何解决如何将数据框投射到具有时间维度的星星对象?

假设我有一个包含空间列 (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

这个星星对象有问题。 (1) 'y' 列被当作一个属性

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 举报,一经查实,本站将立刻删除。

相关推荐


Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其他元素将获得点击?
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。)
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbcDriver发生异常。为什么?
这是用Java进行XML解析的最佳库。
Java的PriorityQueue的内置迭代器不会以任何特定顺序遍历数据结构。为什么?
如何在Java中聆听按键时移动图像。
Java“Program to an interface”。这是什么意思?