R:基于多个变量对记录进行分类

拉美西斯

我正在尝试根据记录的位置对表中的记录进行分类。我将区域划分为等宽和等高的9个正方形(宽度!=高度),并希望创建一个新列,在该列中,根据记录所属的正方形为每个记录赋予一个标签。我所能做的最好:

library(tidyverse)

set.seed(123)

latitude = 10*runif(100)
longitude = 10*runif(100)
locations = data.frame(latitude, longitude)

max_lat <- max(locations$latitude)
min_lat <- min(locations$latitude)
max_lng <- max(locations$longitude)
min_lng <- min(locations$longitude)

grid_num_lat <- 3
grid_num_lng <- 3

step_lat <- (max_lat-min_lat)/grid_num_lat
step_lng <- (max_lng-min_lng)/grid_num_lng

locations <- locations %>%
  mutate(grp_lat = ifelse(latitude <= (min_lat+step_lat), "A", 
                          ifelse(latitude <= (min_lat+(2*step_lat)), "B", 
                                 ifelse(latitude <= (min_lat+(3*step_lat)), "C", "NA")))
         , grp_lng = ifelse(longitude <= (min_lng+step_lng), "1", 
                            ifelse(longitude <= (min_lng+(2*step_lng)), "2", 
                                   ifelse(longitude <= (min_lng+(3*step_lng)), "3", "NA")))
         , grp_loc = paste(grp_lat, grp_lng))

虽然这对于我当前的目的有效,但是如果我想将区域划分为更多或更少的正方形,则更新代码将很烦人。当然,有一种更简单的方法可以实现这一目标?

提前致谢

阿克伦

我们可以通过向量化的方式 findInterval

library(dplyr)
library(stringr)
out1 <- locations %>%
           mutate(grp_lat = LETTERS[findInterval(latitude, 
                          (min_lat + seq_len(3) *step_lat), 
                        rightmost.closed = TRUE)+ 1], 
                 grp_lng = findInterval(longitude, 
                          (min_lng + seq_len(3) *step_lng), 
                     rightmost.closed = TRUE)+ 1,
                  grp_loc = str_c(grp_lat, grp_lng, sep= ' ') )

-检查OP的输出

all.equal(out$grp_loc, out1$grp_loc)
#[1] TRUE

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

Excel - 基于 3 个变量对数据行进行分类

来自分类Dev

使用dplyr基于多个列中的值范围进行分类

来自分类Dev

R:使用knncat对分类变量进行分类时出错

来自分类Dev

基于多个变量对用户进行聚类?

来自分类Dev

基于多个变量对用户进行聚类?

来自分类Dev

R:从基于连续变量的分类变量创建新的分类变量

来自分类Dev

如何基于分类变量在R Plotly中创建叶绿素图?

来自分类Dev

R:基于多个文件的重叠进行子集

来自分类Dev

基于多个变量的传单R颜色图?

来自分类Dev

将多个分类变量转换为 R 中的因子

来自分类Dev

JavaScript,用于提交基于多个变量进行重定向的表单

来自分类Dev

基于多个二进制列创建新的分类变量

来自分类Dev

如何基于R中的两个分类变量创建一个新变量?

来自分类Dev

如何对来自多个传感器的记录数据进行分类?

来自分类Dev

如何基于变量的阈值拆分R中的面板数据记录?

来自分类Dev

使用R基于多个条件过滤记录的绝佳方法

来自分类Dev

R:“ Binning”分类变量

来自分类Dev

单独进行多个分类测试

来自分类Dev

在一个变量中对多个观察进行分类,这样我就可以将它们归类在新的专栏中。如何使代码更短?在R中

来自分类Dev

基于变量进行投射

来自分类Dev

根据两个条件以及每个条件的多个级别对新变量进行分类

来自分类Dev

如何基于r中三列的值对不同的行进行分类

来自分类Dev

在R中基于分类变量将数据帧的n个行子集

来自分类Dev

如何基于R中的分类变量删除数据框中的离群值

来自分类Dev

R中使用ggvis包基于2个分类变量的散点图

来自分类Dev

根据计数对记录集进行分类

来自分类Dev

对SQL中的表记录进行分类?

来自分类Dev

根据匹配表对记录进行分类

来自分类Dev

基于变量对R中的数据帧进行子集/合并

Related 相关文章

  1. 1

    Excel - 基于 3 个变量对数据行进行分类

  2. 2

    使用dplyr基于多个列中的值范围进行分类

  3. 3

    R:使用knncat对分类变量进行分类时出错

  4. 4

    基于多个变量对用户进行聚类?

  5. 5

    基于多个变量对用户进行聚类?

  6. 6

    R:从基于连续变量的分类变量创建新的分类变量

  7. 7

    如何基于分类变量在R Plotly中创建叶绿素图?

  8. 8

    R:基于多个文件的重叠进行子集

  9. 9

    基于多个变量的传单R颜色图?

  10. 10

    将多个分类变量转换为 R 中的因子

  11. 11

    JavaScript,用于提交基于多个变量进行重定向的表单

  12. 12

    基于多个二进制列创建新的分类变量

  13. 13

    如何基于R中的两个分类变量创建一个新变量?

  14. 14

    如何对来自多个传感器的记录数据进行分类?

  15. 15

    如何基于变量的阈值拆分R中的面板数据记录?

  16. 16

    使用R基于多个条件过滤记录的绝佳方法

  17. 17

    R:“ Binning”分类变量

  18. 18

    单独进行多个分类测试

  19. 19

    在一个变量中对多个观察进行分类,这样我就可以将它们归类在新的专栏中。如何使代码更短?在R中

  20. 20

    基于变量进行投射

  21. 21

    根据两个条件以及每个条件的多个级别对新变量进行分类

  22. 22

    如何基于r中三列的值对不同的行进行分类

  23. 23

    在R中基于分类变量将数据帧的n个行子集

  24. 24

    如何基于R中的分类变量删除数据框中的离群值

  25. 25

    R中使用ggvis包基于2个分类变量的散点图

  26. 26

    根据计数对记录集进行分类

  27. 27

    对SQL中的表记录进行分类?

  28. 28

    根据匹配表对记录进行分类

  29. 29

    基于变量对R中的数据帧进行子集/合并

热门标签

归档