首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >使用下列值分配检测历史记录的最佳方式是什么?

使用下列值分配检测历史记录的最佳方式是什么?
EN

Stack Overflow用户
提问于 2021-02-14 04:39:23
回答 1查看 30关注 0票数 0

我有三年的检测数据。每年在一个站点上有8个概率。这些是no,a,n,na,l,la,ln,lna。我已经分配了下面的值:

代码语言:javascript
运行
复制
no = 0
a = 1
n = 1
na = 2
l = 100
la = 101
ln = 101
lna = 102

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

所以从本质上讲,我试图获得64个术语的列表,范围从no,no到lna,lna,以及它们各自的值。

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

在第三年,我也希望如此。我想计算并标记所有的可能性。这需要排列在两列中,一列包含历史文本,另一列包含历史值。

代码语言:javascript
运行
复制
x1         x2 
no,no,no   0

我相信这是可能的,甚至可能是基本的。虽然我不知道从何说起。

任何帮助都将不胜感激。

提前感谢

EN

回答 1

Stack Overflow用户

发布于 2021-02-14 09:29:47

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

  1. 定义了

的两个可能性列表

代码语言:javascript
运行
复制
poss = c("no", "a", "n", "na", "l", "la", "ln", "lna")
vals = c(1, 1, 2, 100, 101, 101, 101, 102)

  1. 使用expand.grid枚举

的可能性

代码语言:javascript
运行
复制
output  <- expand.grid(poss, poss, stringsAsFactors = FALSE)
comb_values <- expand.grid(vals, vals)

  1. Write ouput

代码语言:javascript
运行
复制
output$names <- paste(output$Var1, output$Var2, sep = ",")
output$value <- comb_values$Var1 + comb_values$Var2
output$Var1 <- output$Var2 <- NULL

结果

代码语言:javascript
运行
复制
     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, poss, poss替换poss, poss即可。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/66189691

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档