現在改變的地理位置數據,以網格窗體我清理在美國的一些NO2排放數據,以及數據的格式是這樣的:R中
lat long no2
xxx xxx xxx
xxx xxx xxx
xxx xxx xxx
但我想最終是與數據矩陣緯度行名和經度列名,如
long1 long2 long3 ...
lat1 xxxx xxxx xxxx
lat2 xxxx xxxx xxxx
lat3 xxxx xxxx xxxx
...
而且,因爲我不必爲數據在上述矩陣中的每個細胞,我想缺少數據的地方標記爲「0」。
我以前所做的是:
one <- read.table(files[1], header = TRUE, sep = ",")
one <- one[,1:3]
row_name <- seq(25.05,49.95, by = 0.1)
col_name <- seq(-124.95, -65.05, by = 0.1)
a <- matrix(0, length(row_name), length(col_name))
data_matrix <- data.frame(a)
row.names(data_matrix) <- row_name
names(data_matrix) <- col_name
for (i in 1: dim(one)[1]){
lat <- as.character(one[i,]$lat)
long <- as.character(one[i,]$long)
data_matrix[lat,long] <- one[i,]$no2
}
這種方法顯然是緩慢和低效,因爲基本上我所做的是先通過整個基質和細胞的空白單元格的填充。
如果有人能幫我解決這個問題,我將非常感激!
如果我只是寫'xtabs'它本來的字符足以被接納爲一個評論,但這一個功能可能會爲你做所有事情。爲什麼不發佈數據的一個小角落,而不是創建虛擬矩陣? –
你好,歡迎來到SO。爲了提供一個可重現的例子,你可以使用'reproduce()'。說明在這裏:http://bit.ly/SORepro - [如何使一個偉大的R可重現的例子](http://bit.ly/SORepro) –