Dưới đây là ví dụ nhỏ của tôi: ...........lọc có điều kiện/subseting dữ liệu trong dữ liệu khoảng cách tuyến tính trong r
Mark <- paste ("SN", 1:400, sep = "")
highway <- rep(1:4, each = 100)
set.seed (1234)
MAF <- rnorm (400, 0.3, 0.1)
PPC <- abs (ceiling(rnorm (400, 5, 5)))
set.seed (1234)
Position <- round(c(cumsum (rnorm (100, 5, 3)),
cumsum (rnorm (100, 10, 3)), cumsum (rnorm (100, 8, 3)),
cumsum (rnorm (100, 6, 3))), 1)
mydf <- data.frame (Mark, highway, Position, MAF, PPC)
Tôi muốn lọc dữ liệu đó là ít hơn 10 cho PPC tại thời điểm lớn hơn 0,3 đối với MAF.
# filter PPC < 10 & MAF > 0.3
filtered <- mydf[mydf$PPC < 10 & mydf$MAF > 0.3,]
Tôi có biến nhóm - đường cao tốc và mỗi Dấu có vị trí trên đường cao tốc. Ví dụ đường cao tốc 1 trong năm đánh dấu đầu tiên:
1.4 7.2 15.5 13.4 19.7
|-----|.......|.......|.....|.....|
"SN1" "SN2" "SN3" "SN4" "SN5"
Bây giờ tôi muốn chọn bất kỳ ~ 30 Marks như vậy mà họ được phân phối tốt trong mỗi đường cao tốc dựa trên vị trí trên mỗi đường cao tốc (xem xét độ dài khác nhau của đường cao tốc) và tối thiểu khoảng cách giữa hai chọn là không ít hơn 10
Edit: ý tưởng (phác thảo thô)
tôi có thể nghĩ một chút về cách giải quyết câu hỏi này. Giúp đánh giá cao.
Chỉnh sửa: Ở đây cái gì đó tôi có thể hình dung ra:
# The maximum (length) of each highway is:
out <- tapply(mydf$Position, mydf$highway, max)
out
1 2 3 4
453.0 1012.4 846.4 597.6
min(out)
[1] 453
#Total length of all highways
totallength <- sum(out)
# Thus average distance at which mark need to be placed:
totallength/30
[1] 96.98
Đối với quốc lộ 1, các nhãn hiệu theoritical có thể là tại địa chỉ:
96.98, 96.98+ 96.98, 96.98+96.98+ 96.98, ........till it is less
than maximum (length)for highway 1.
Như vậy theoritically chúng ta cần phải chọn đánh dấu ở mọi 96,98 . Tuy nhiên, dấu đặt trong đường cao tốc có thể không được foud tại
lưu ý: tổng kết quả lựa chọn nhà dấu ngoặc không cần phải chính xác 30 (khoảng 30)
Sự cố vẫn chưa được giải quyết, vui lòng cho tôi biết nếu bạn có bất kỳ gợi ý nào – shNIL