【发布时间】:2020-03-08 23:57:43
【问题描述】:
我正在使用 R 并且有一个数据集,其中每一列是一个生产单位,每一行是一个时间单位。每个变量都是应用于生产单元的轮作序列。
数据集如下所示:
land_use_1 land_use_2 land_use_3 land_use_4 land_use_5 land_use_6
<chr> <chr> <chr> <chr> <chr> <chr>
1 PAST PAST PAST PAST SOY PAST
2 PAST PAST PAST PAST SOY PAST
3 PAST PAST PAST PAST PAST PAST
4 PAST PAST PAST PAST PAST SOY
5 PAST PAST PAST PAST CORN SOY
6 PAST PAST PAST PAST CORN PAST
我需要检查这些列(作物序列)中有多少是唯一的,因为我无法一一进行(执行类似land_use_1!=land_use_2,执行类似land_use_1!=land_use_3 等),因为有数百个数据集中的列数。
我尝试使用这个命令
dataset %>% unique(, MARGIN=2) %>% dim()
但它返回数据集的相同数量的列,因此不检测哪些列是相同的(我知道有些是相同的,因为我使用其中一些进行了检查)。
我怎样才能有效地做到这一点?
谢谢
【问题讨论】:
-
我预计只有唯一列的数据框的维度来查看它有多少列。我将唯一定义为轮作(列)中的唯一状态序列。
-
不,我想选择唯一的列,因为它们中的许多是重复的,因为它们具有相同的作物轮作(状态序列)。例如,如果我执行 land_use_1==land_use_2 它返回 TRUE,因为它们使用相同的旋转,但如果我执行 land_use_1==land_use_6 它返回 FALSE,因为旋转不同。我想计算不同轮作的次数。