我有以下数据,我想在先出平衡中运行先运行。 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
答案 0 :(得分:0)
尝试:
data.frame(cumsum(dat[,5])-cumsum(dat[,4]),cumsum(dat[,4]),gsub("`","",dat[,2]))
注释功能搞砸了反引号转义,因此得到了答案。