首页 > 解决方案 > 根据 x 坐标和 y 坐标将一个数据集拆分为两个数据集

问题描述

我有一个大数据集,数据如下所示:

         x_coord    y_coords             Y
   [1,] 0.8775213887 0.705373861  0.1281382382
   [2,] 0.7685332086 0.584642385  1.9679113354
   [3,] 0.2789631383 0.939768854  0.9075644917
   [4,] 0.5291636926 0.828879917  6.1022986770
   [5,] 0.9629070312 0.151365314 -0.4051817388
    :        :         :           :     
    :        :         :           : 
  [100,] 0.0345605961 0.672313672  0.4375736393

x 和 y 坐标介于 0 和 1 之间。

我想根据 x 坐标和 y 坐标将数据拆分为两个数据集。

对于第一个数据集,我想选择 x 和 y 坐标在 0.3 和 0.4 之间的行。其余数据将在第二个数据集中。

我尝试使用“for 循环”,但我知道最好不要使用 for 循环,因为它很慢。是否有不使用 for 循环的包或其他方式。谢谢

标签: r

解决方案


您可以尝试对矩阵进行子集化:

d1 <- mat[mat$x_coord >= 0.3 & mat$x_coord <= 0.4 &
          mat$y_coords >= 0.3 & mat$y_coords <= 0.4, ]
d2 <- mat[mat$x_coord < 0.3 | mat$x_coord > 0.4 |
          mat$y_coords < 0.3 | mat$y_coords > 0.4, ]

推荐阅读