For循环提取数据
我有一个包含这些变量(分支、项目、销售、库存)的数据集,我需要创建一个for循环来提取具有以下内容的数据 具有For循环提取数据,r,for-loop,if-statement,R,For Loop,If Statement,我有一个包含这些变量(分支、项目、销售、库存)的数据集,我需要创建一个for循环来提取具有以下内容的数据 具有 1-不同的分支机构 2-其销售额高于库存 并将结果保存在数据框中 我使用的代码是 trials <- sample_n(Data_with_stock,1000) for (i in 1:nrow(trials)) { if(trials$sales[i] > trials$stock[i] & trials$item[i] == trials$item
1-不同的分支机构
2-其销售额高于库存 并将结果保存在数据框中 我使用的代码是
trials <- sample_n(Data_with_stock,1000)
for (i in 1:nrow(trials))
{
if(trials$sales[i] > trials$stock[i] & trials$item[i] == trials$item[i+1] & trials$branch[i] != trials$branch[i+1])
{s <-data.frame( (trials$NAME[i])
,(trials$branch[i]))
}
}
试用$stock[i]&试用$item[i]==试用$item[i+1]&试用$branch[i]!=试验$branch[i+1])
{s因为您只想修复代码:
您没有在代码中设置一个=
使用:
trials建议您使用dplyr库,安装后考虑到“df”是您的数据集,请对问题1和2使用以下命令
问题1
问题1=df%>%
分组依据(项目)%>%
总结(无分支机构=无明显(分支机构))
项目多于一个分支机构=question\u one[哪个(question\u one$No\u of\u branchs>1)“项目”]
问题2:同样,
问题二=df%>%
分组依据(项目)%>%
总结(库存=总额(库存),销售=总额(销售))
销售大于库存的项目=问题二[哪个(问题二$sales>问题二$stock),“项目”]
如果没有dplyr,就无法解决问题,但是建议,如果还没有使用,dplyr对于数据处理总是有用的如果一个项目有不同的分支,变量分支会是什么样子?即使有两个=
这个试验$item[i]=trials$item[i]
没有多大意义。因为不同的分支机构在不同的区域销售相同的商品。伙计们,我不需要进行for循环,因为我需要所有答案都在一个数据框中。for循环应该比较行中的商品和分支机构以及内部的商品,以获得I f条件来比较销售额和库存。我需要修复我的代码elook假设我们有20家药店,假设他们销售100种商品,我需要确定商品销售是否大于库存,以便其他分支机构可以支持此项目,因此所有药店的100种商品都是相同的,他们有库存和销售单位,我需要找到库存销售额较高的商品,以便我可以从其他分支机构发送此商品NCH您能帮我找到此选项中的项目吗?它不起作用–Sepa Mostafa 16小时前看,假设我们有20家药店分支机构假设他们销售100种项目,我需要找到项目销售额是否大于库存,以便其他分支机构可以支持此项目–Sepa Mostafa 16小时前,因此100种项目相同在所有药店,他们都有库存和销售单位。我需要找到库存销售额较高的商品,以便我可以在16小时前从另一家分店Sepa Mostafa发送此商品。您能帮我找到此选项中的商品吗
trials <- sample_n(Data_with_stock,1000)
# next you need first to define s used in your loop
s <- array(NA, dim = c(1,2)) # as you only save 2 things in s per iteration
for (i in 1:nrow(trials)) {
# but I dont get why you compare the second condition.
if(trials$sales[i] > trials$stock[i] & trials$item[i] == trials$item[i] & trials$branch[i] != trials$branch[i+1]) {
s[i,] <- cbind(trials$NAME[i], trials$branch[i])
} else {
s[i,] <- NA # just to have no problem with the index i, you can delete the one with na afterwards with na.omit()
}