2014-01-21 59 views
1

我有空間時間數據: 36天測量站的日測量爲425天。 我想要做一些分析,在R這些數據,所以我剛剛創建從數據的數據幀,它看起來像這樣: space-wide data frame in R如何在R中創建空間寬度的數據幀

對於每個站X10004,X10007的,......我有緯度/經度值,但我不知道如何正確地將這些信息添加到數據幀以便使用R的可用分析工具。

如何操作?或者我應該使用R的其他數據結構可能性以及如何?

+2

您的問題不夠具體。告訴我們你想要做的具體分析。不同分析需要不同的結構。另外,不要粘貼你的'data.frame'的圖像,而應該使用'head(dput(tempdata))'並粘貼它,以便我們可以輕鬆地重新創建'data.frame'。 – nograpes

回答

3

您需要將數據融入長格式,然後合併。一旦你做到了這一點,你可以用ddply/data.table/ggplot

library(reshape2) 
res <- merge(
    melt(df, id.vars="date"), 
    lat.lon, 
    by.x="variable", by.y="loc.name" 
) 
head(res) 
# variable  date value  lat  lon 
# 1  V1 2013-01-01  4 0.6193299 0.815607 
# 2  V1 2013-01-02  5 0.6193299 0.815607 
# 3  V1 2013-01-03  2 0.6193299 0.815607 
# 4  V1 2013-01-04  3 0.6193299 0.815607 
# 5  V1 2013-01-05 10 0.6193299 0.815607 
# 6  V1 2013-01-06  7 0.6193299 0.815607 

在這種情況下,認爲variable爲您的數據站。這裏是我創建的虛擬數據:

df <- cbind(
    data.frame(seq(as.Date("2013-01-01"), by="+1 day", length.out=10)), 
    as.data.frame(replicate(10, sample(1:10))) 
) 
names(df) <- c("date", paste0("V", 1:10)) 
head(df) 
#   date V1 V2 V3 V4 V5 V6 V7 V8 V9 V10 
# 1 2013-01-01 4 9 5 10 8 5 7 9 1 1 
# 2 2013-01-02 5 10 4 6 6 8 4 6 7 10 
# 3 2013-01-03 2 8 1 5 5 3 10 4 9 4 
# 4 2013-01-04 3 3 10 4 3 7 9 7 5 5 
# 5 2013-01-05 10 6 9 7 10 10 5 5 3 6 
# 6 2013-01-06 7 2 2 9 4 2 2 8 8 3 
lat.lon <- data.frame(loc.name=paste0("V", 1:10), lat=runif(10), lon=runif(10)) 
head(lat.lon) 
# loc.name  lat  lon 
# 1  V1 0.6193299 0.8156070 
# 2  V2 0.3656795 0.9293682 
# 3  V3 0.7073155 0.1494767 
# 4  V4 0.6715280 0.9029310 
# 5  V5 0.3588971 0.2281054 
# 6  V6 0.7231073 0.2840767 
+0

到目前爲止謝謝你。我現在做了那個數據框。你能告訴我如何做現在的克里格時空插值方法嗎? – MojioMS

+0

@MojioMS,我認爲這會成爲另一個問題,儘管你可以在這裏嘗試,但實際上可能更好地發佈在統計特定網站上。你將不得不提供更多關於你想要做什麼以及你的預期輸出是什麼樣子的細節。 – BrodieG