R腳本-基于R對(duì)csv分布數(shù)據(jù)進(jìn)行去冗余篩選
# 導(dǎo)入必要的包(如果未安裝第一次使用需要安裝以下腳本)
library(dplyr)
library(geosphere)
# 讀取數(shù)據(jù)
data <- read.csv("points.csv")
# 計(jì)算每個(gè)點(diǎn)與其他點(diǎn)之間的距離
dist_mat <- distm(data[, c("lon", "lat")])
# 將距離小于5km的點(diǎn)標(biāo)記為需要保留的
keep <- rep(TRUE, nrow(data))
for (i in 1:(nrow(data)-1)) {
for (j in (i+1):nrow(data)){
if (dist_mat[i, j] <5000) {
keep[j] <- FALSE
}
}
}
# 篩選并保存數(shù)據(jù)
result <- data[keep, ]
write.csv(result, "filtered_points.csv", row.names =FALSE)
腳本說(shuō)明:其中究驴,假設(shè)原始數(shù)據(jù)的文件名為points.csv,包含兩列數(shù)據(jù)lon和lat表示經(jīng)度和緯度。在腳本中吁断,首先讀取數(shù)據(jù),然后計(jì)算每個(gè)點(diǎn)與其他點(diǎn)之間的距離。接著腊尚,將距離小于5km的點(diǎn)標(biāo)記為需要保留的,并最終篩選出需要保留的點(diǎn)并保存為filtered_points.csv文件满哪。