我有數據與XY上的矩形網格使用XY打破網格到50個平方亞基中的R座標
dX <- runif(1000,0, 500)
dY <- runif(500,0, 500)
d <- data.frame(dX, dY)
我要分配50「曲線號碼」到這個數據座標,從而使得任何介於0 -100 dX
和0-100 dY
是plot 1. 100-200 dX
和1000-200 dY
之間的任何值都是plot 2.等等我可以想象寫50行代碼來做到這一點,但我真的更願意寫1!
我有數據與XY上的矩形網格使用XY打破網格到50個平方亞基中的R座標
dX <- runif(1000,0, 500)
dY <- runif(500,0, 500)
d <- data.frame(dX, dY)
我要分配50「曲線號碼」到這個數據座標,從而使得任何介於0 -100 dX
和0-100 dY
是plot 1. 100-200 dX
和1000-200 dY
之間的任何值都是plot 2.等等我可以想象寫50行代碼來做到這一點,但我真的更願意寫1!
這是一個使用基本R函數cut
和interaction
的解決方案。
d$gridGroup <- interaction(cut(d$dX, breaks=seq(0, 1000, by=100)),
cut(d$dY, breaks=seq(0, 1000, by=100)), sep="X")
head(d)
dX dY gridGroup
1 56.85171 418.8170 (0,100]X(400,500]
2 311.14970 243.7331 (300,400]X(200,300]
3 304.63737 55.1685 (300,400]X(0,100]
4 311.68972 175.6815 (300,400]X(100,200]
5 430.45769 380.5315 (400,500]X(300,400]
6 320.15530 194.8324 (300,400]X(100,200]
這會生成一個因子變量,其中包含對應於X網格和Y網格的有用參考標籤。正如評論中所建議的那樣,cut
可用於生成一個因子變量來描述連續變量的間隔。然後interaction
可用於產生兩個區間變量的相互作用。
數據
set.seed(1234)
dX <- runif(1000,0, 500)
dY <- runif(500,0, 500)
d <- data.frame(dX, dY)
#DATA
set.seed(42)
dX <- runif(1000,0, 500)
dY <- runif(500,0, 500)
d <- data.frame(dX, dY)
x_grid = seq(0, 500, 500/5)[-1]
y_grid = seq(0, 500, 500/5)[-1]
grids = expand.grid(x_grid, y_grid)
dX2 = ceiling(d$dX/100)*100
dY2 = ceiling(d$dY/100)*100
d$group = match(paste(dX2,dY2,sep = "-"), paste(grids$Var1,grids$Var2,sep="-"))
plot(d$dX, d$dY, type = "p", col = d$group, pch = 19)
的'cut'功能可能是你需要什麼 –