R-如何从FIFO库存循环中获取条形码?编程的新手



我有以下数据,我想先在第一个余额中运行运行。Qntyput是货架上的库存,qntysold是出售的库存。我想我做对了,但是我可以让barcode在报告的一边显示。

数据:

*obs.       barcode      createdate     qntysold qntyput
 1.         `848233070267 2015-03-25        0       2
 2.         `848233070267 2015-03-26        2       0
 3.            1001271406 2011-07-09        0     100
 4.            1001271406 2011-07-13        1       0
 5.            1001271406 2011-07-18        3       0
 6.            1001271406 2011-07-19        1       0
 7.            1001271406 2011-07-24        1       0
 8.            1001271406 2011-07-26        1       0
 9.            1001271406 2011-07-28        1       0
 10.           1001271406 2011-07-29        1       0
 11.           1001271406 2011-07-31        1       0
 12.           1001271406 2011-08-01        3       0
 13.           1001271406 2011-08-06        1       0
 14.           1001271406 2011-08-07        3       0
 15.           1001271406 2011-08-15        2       0
 16.           1001271406 2011-08-16        1       0
 17.           1001271406 2011-08-18        1       0
 18.           1001271406 2011-08-19        4       0
 19.           1001271406 2011-08-20        1       0
 20.           1001271406 2011-08-23        2       0
 21.           1001271406 2011-08-24        2       0
 22.           1001271406 2011-08-26        1       0
 23.           1001271406 2011-08-27        2       0
 24.           1001271406 2011-08-28        1       0
 25.           1001271406 2011-08-29        1       0
 26.           1001271406 2011-08-30        1       0
 27.           1001271406 2011-08-31        3       0
 28.           1001271406 2011-09-06        1       0
 29.           1001271406 2011-09-09        2       0
 30.           1001271406 2011-09-11        1       0 
 31.           1001271406 2011-09-12        1       0

尝试的代码:
sumq=list()#sum of quantity
runq=list()#running quantity
bcode=list()
for (i in seq(1, length(IDs)))
{
  z=dim(data[data$barcode %in% IDs[i] & data$qntyput!=0,])[1]
  j=0
  rem=0
  sum=0
  stknum=rep(0, 15)
  for(x in 1:z)
  {
    stknum[x]=data[data$barcode %in% IDs[i] & data$qntyput!=0,][x,4]
    g=length(data[data$barcode %in% IDs[i],3])
    while(sum<stknum[x])
      {
       j=j+1
       if(g-j<0) break
       sum=sum+data[data$barcode %in% IDs[i], 3][j]
       runq=c(runq,stknum[x]-sum)
       bcode=c(bcode,data[data$barcode %in% IDs[i], 1][1])
       sumq=c(sumq,sum)
    }
    sum=sum-stknum[x]
  }
}
do.call(rbind, Map(data.frame, =runq, C=sumq, B=bcode))

问题:B列未显示条形码。它只是不断显示重复数字。如何解决此问题?帮助您将不胜感激。

-       RunBal TotSold Barcode
1.          2       0       1
2.          0       2       1
3.        100       0       2
4.         99       1       2
5.         96       4       2
6.         95       5       2
7.         94       6       2
8.         93       7       2
9.         92       8       2
10.        91       9       2
11.        90      10       2
12.        87      13       2
13.        86      14       2
14.        83      17       2
15.        81      19       2
16.        80      20       2
17.        79      21       2
18.        75      25       2
19.        74      26       2
20.        72      28       2
21.        70      30       2
22.        69      31       2
23.        67      33       2
24.        66      34       2
25.        65      35       2
26.        64      36       2
27.        61      39       2
28.        60      40       2
29.        58      42       2
30.        57      43       2
31.        56      44       2
32.        52      48       2
33.        49      51       2
34.        48      52       2
35.        47      53       2
36.        46      54       2
37.        44      56       2
38.        41      59       2
39.        40      60       2
40.        39      61       2
41.        37      63       2
42.        36      64       2
43.        33      67       2
44.        32      68       2
45.        31      69       2
46.        30      70       2
47.        29      71       2
48.        28      72       2
49.        27      73       2
50.        26      74       2

尝试:

data.frame(cumsum(dat[,5])-cumsum(dat[,4]),cumsum(dat[,4]),gsub("`","",dat[,2]))

评论功能弄乱了回避的逃脱,因此答案。

最新更新