首页 > 解决方案 > 使用以下值分配检测历史记录的最佳方法是什么?

问题描述

我有三年的检测数据。每年在一个地点有 8 个概率。它们是不、a、n、na、l、la、ln、lna。我已经分配了以下值:

no = 0
a = 1
n = 1
na = 2
l = 100
la = 101
ln = 101
lna = 102

在第 2 年,我希望计算和标记所有结果,因此可以任意组合上述两个术语,以数字方式描述检测历史。

所以基本上我试图得到一个 64 个术语的列表,从 no,no 到 lna,lna 以及它们各自的值。

例如,no,no = 0 和 lna,lna = 204

在第 3 年,我也希望如此。我想计算和标记所有的可能性。这需要分成两列,一列带有历史文本,一列带有历史值。

x1         x2 
no,no,no   0

我确信这是可能的,甚至可能是基本的。虽然我不知道从哪里开始。

任何帮助将不胜感激。

提前致谢

标签: rmatrixdetectionexponential

解决方案


我确信有更优雅、更简洁的方法可以做到这一点,但这里有一种方法:

  1. 定义两个可能性列表
poss = c("no", "a", "n", "na", "l", "la", "ln", "lna")
vals = c(1, 1, 2, 100, 101, 101, 101, 102)
  1. 用于expand.grid列举可能性
output  <- expand.grid(poss, poss, stringsAsFactors = FALSE)
comb_values <- expand.grid(vals, vals)
  1. 写输出
output$names <- paste(output$Var1, output$Var2, sep = ",")
output$value <- comb_values$Var1 + comb_values$Var2
output$Var1 <- output$Var2 <- NULL

结果

     names value
1    no,no     2
2     a,no     2
3     n,no     3
4    na,no   101
5     l,no   102
6    la,no   102
7    ln,no   102
8   lna,no   103
9     no,a     2
10     a,a     2
11     n,a     3
12    na,a   101
13     l,a   102
14    la,a   102
15    ln,a   102
16   lna,a   103
17    no,n     3
18     a,n     3
19     n,n     4
20    na,n   102
21     l,n   103
22    la,n   103
23    ln,n   103
24   lna,n   104
25   no,na   101
26    a,na   101
27    n,na   102
28   na,na   200
29    l,na   201
30   la,na   201
31   ln,na   201
32  lna,na   202
33    no,l   102
34     a,l   102
35     n,l   103
36    na,l   201
37     l,l   202
38    la,l   202
39    ln,l   202
40   lna,l   203
41   no,la   102
42    a,la   102
43    n,la   103
44   na,la   201
45    l,la   202
46   la,la   202
47   ln,la   202
48  lna,la   203
49   no,ln   102
50    a,ln   102
51    n,ln   103
52   na,ln   201
53    l,ln   202
54   la,ln   202
55   ln,ln   202
56  lna,ln   203
57  no,lna   103
58   a,lna   103
59   n,lna   104
60  na,lna   202
61   l,lna   203
62  la,lna   203
63  ln,lna   203
64 lna,lna   204

三天相同的逻辑,只需替换poss, possposs, poss, poss等。


推荐阅读