在不同长度的多个数据帧中添加和减去值 - 流量分析

时间:2016-09-11 12:08:13

标签: r add subtraction

谢谢jakub和Hack-R! 是的,这些是我的实际数据。我开始的数据如下:

 [A] #first, longer dataset 
 CODE_t2 VALUE_t2
 111      3641
 112      1691
 121      1271
 122      185
 123      522
 124      0
 131      0
 132      0
 133      0
 141      626
 142      170
 211      0
 212      0
 213      0
 221      0
 222      0
 223      0
 231      95
 241      0
 242      0
 243      0
 244      0
 311      129
 312      1214
 313      0
 321      0
 322      0
 323      565
 324      0
 331      0
 332      0
 333      0
 334      0
 335      0
 411      0
 412      0
 421      0
 422      0
 423      0
 511      6
 512      0
 521      0
 522      0
 523      87

在上表中,我们可以看到44个土地使用CODES(我在第一个条目中不恰当地命名为“class”)某个城市。有些值只有0,这意味着该城市没有该类型的土地用途。 从该表开始,该表显示t2的所有土地利用类型及其对应的值(“VALUE_t2”),我必须重建每种类型的土地使用量(“VALUE_t1”)。

为此,我必须使用从t2到t1的“更改土地使用表”来增加和减去每个土地使用的价值(如果不是0),具体如下:

 [B] #second, shorter dataset 
 CODE_t2   CODE_t1   VALUE_CHANGE1
 121         112       2
 121         133       12
 121         323       0
 121         511       3
 121         523       2
 123         523       4
 133         123       3
 133         523       4
 141         231       12
 141         511       37

所以,为了从VALUE_t2获得VALUE_t1,我可以从土地使用类型的值中减去2 + 12 + 0 + 3 + 2公顷(第二个,更短的表的前5个值)/第一个较长的桌子(1271公顷)的代码121,增加2公顷土地类型112,12公顷土地类型133,3公顷土地类型511和2公顷土地类型523.我必须这样做所有土地利用类型不同于0,后来也从t1到t0。

我要做的是一种循环,它可以根据每个土地使用类型/代码加上和减去VALUE_t2到VALUE_t1以及从VALUE_t1到VALUE_t0的值。

一旦我估计了VALUE_t1和VALUE_t0,我会将这些值放在一个简单的表中,显示相对变化(这里的值不是真实的):

 CODE    VALUE_t0    VALUE_t2     % VAR t2-t0
 code1      50         100        ((100-50)/50)*100
 code2      70         80         ((80-70)/70)*100
 code3      45         34         ((34-45)/45)*100

到目前为止,我能做的是:

 land_code <- names(A)[-1]
 land_code
 A$VALUE_t1 <-  for(code in land_code{
 cbind(A[1], A[land_code] - B[match(A$CODE_t2, B$CODE_t2), land_code])
 }

如果我使用循环,我会收到错误,而如果我把它拿走:

 A$VALUE_t1 <-  cbind(A[1], A[land_code] - B[match(A$CODE_t2, B$CODE_t2), land_code])

它有效,但我真的没有得到我想要的东西......到目前为止,我正在研究如何获得一个新的列,其中包含新的“add&amp; subtract”值,但是没有成功然而。所以我研究了如何获得一个至少与土地利用类型匹配的新列,然后包括“加减”公式。

另一个问题是,通过使用“匹配”,我得到一个更短的A $ VALUE_t1表(13行而不是44行),而我想保留数据集A中的所有土地使用类型,因为我将拥有将它与包括VALUES_t0(我在这里没有显示)的表格相匹配。

很抱歉,我现在做不到这一点......我希望能够更好地解释我必须做的事情。我非常感谢您能为我提供的任何帮助。

非常感谢

0 个答案:

没有答案