我遇到了一个我自己无法解决的问题。
我有一个数据框,其中包含一些环境信息以及每个采样站的纬度和经度。我想将我的学习区域划分为4个较小的区域(见下图),我想将其信息包含在我的洞数据框的新列中。也就是说,我的新列应该是具有4个级别的因子,每个级别对应于基于每个区域限制的特定地理位置范围。
例如,假设我的区域1被定义为位于经度(-10.4 to -10.6)
和纬度(-37 to -36.2.)
之间的所有样本站。因此,最后我希望有一个这样的数据框:
Variable 1 Variable 2 Latitude Longitude Area
0.98 1.5 -10.2 -37.5 1
0.74 0.9 -10.1 -37.5 1
0.58 0.7 -11.7 -36.8 3
0.94 1.2 -11.9 -37.5 4
等等。任何人都可以帮我解决我的问题吗?
答案 0 :(得分:1)
如果区间仅由Latitude
确定,则可以使用以下内容。
> Var1 <- runif(100)
> Var2 <- runif(100)
> Latitude <- runif(100, -13.0, -10.0)
> Longitude <- runif(100, -38.0, -36.0)
>
> dat <- data.frame(Var1, Var2, Latitude, Longitude)
>
> Area <- as.numeric(cut(dat$Latitude, breaks = c(-13.0, -12.0, -11.0, -10.0)))
>
> dat <- data.frame(dat, Area)
> dat
Var1 Var2 Latitude Longitude Area
1 0.655301728 0.14144585 -10.48851 -37.96152 3
2 0.107591891 0.72131348 -11.75188 -36.05489 2
3 0.639967329 0.98282855 -10.76784 -36.01176 3
4 0.295014765 0.31968068 -11.99204 -37.48354 2
5 0.373011497 0.21168608 -11.62501 -36.37215 2
6 0.802966559 0.69812115 -11.56078 -37.09359 2
7 0.013607591 0.47285961 -10.95633 -36.06122 3
8 0.309604142 0.14035926 -10.94194 -37.61688 3
9 0.066620024 0.15386860 -12.26123 -36.84730 1
10 0.066227174 0.70843535 -12.06751 -36.44342 1
11 0.551767865 0.60483061 -12.78234 -36.23624 1
12 0.770809846 0.80973319 -10.47946 -37.97104 3
13 0.909879222 0.04641956 -11.18606 -36.91503 2
或者您可以使用
Area <- as.numeric(cut(dat$Latitude, breaks = 4))
有4个间隔。