r - 使用以下值分配检测历史记录的最佳方法是什么?
问题描述
我有三年的检测数据。每年在一个地点有 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
我确信这是可能的,甚至可能是基本的。虽然我不知道从哪里开始。
任何帮助将不胜感激。
提前致谢
解决方案
我确信有更优雅、更简洁的方法可以做到这一点,但这里有一种方法:
- 定义两个可能性列表
poss = c("no", "a", "n", "na", "l", "la", "ln", "lna")
vals = c(1, 1, 2, 100, 101, 101, 101, 102)
- 用于
expand.grid
列举可能性
output <- expand.grid(poss, poss, stringsAsFactors = FALSE)
comb_values <- expand.grid(vals, vals)
- 写输出
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, poss
为poss, poss, poss
等。
推荐阅读
- continuous-integration - 大厅:on_failure 的多个步骤
- powershell - Splat 参数到 cmdlet 而不展开数组
- oracle-apex-5.1 - 从 APEX 设计器访问 APEX_APPLICATION.G_Fxx 值
- android - 房间获取所有项目产生 ArrayIndexOutOfBoundsException
- javascript - 在 vue.js 中寻址到 css 时编译失败
- python - 将纬度经度转换为米/英尺(python中的haversine)
- angular - Angular 6 - 提交后重置表单不起作用
- phpmyadmin - 使用 sql 文件的 phpMyAdmin 数据库更新
- ios - 无法使用 Nativescript 3.4.3 构建 .ipa
- java - 使用单选按钮更新 ListView 适配器输入