Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/r/82.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
R计算特定值的实例_R_Data Manipulation - Fatal编程技术网

R计算特定值的实例

R计算特定值的实例,r,data-manipulation,R,Data Manipulation,我有一个data.frame,如下所示 df <- read.table(header = T, text = "Item.Nbr supply demand 1 82078-002 1 1 2 82078-007 2 0 3 82078-007 4 0 4 82078-007 0 0 5 82078-007 0 7") > df Item.Nbr supply

我有一个data.frame,如下所示

df <- read.table(header = T, text = "Item.Nbr supply demand
1   82078-002          1  1
2   82078-007           2 0
3   82078-007          4 0
4   82078-007           0 0
5   82078-007           0 7")
> df
   Item.Nbr supply demand
1 82078-002      1      1
2 82078-007      2      0
3 82078-007      4      0
4 82078-007      0      0
5 82078-007      0      7

使用基本R
聚合

aggregate(. ~ Item.Nbr, data=transform(df, both=supply+demand), FUN=function(x) sum(x==0) )
#or
aggregate(
  cbind(supply,demand,both=supply+demand) ~ Item.Nbr, data=df, FUN=function(x) sum(x==0) 
)

#   Item.Nbr supply demand both
#1 82078-002      0      0    0
#2 82078-007      2      3    1
或者在
dplyr
中,如果那是你的包(向@akrun点点头):


使用基本R
聚合

aggregate(. ~ Item.Nbr, data=transform(df, both=supply+demand), FUN=function(x) sum(x==0) )
#or
aggregate(
  cbind(supply,demand,both=supply+demand) ~ Item.Nbr, data=df, FUN=function(x) sum(x==0) 
)

#   Item.Nbr supply demand both
#1 82078-002      0      0    0
#2 82078-007      2      3    1
或者在
dplyr
中,如果那是你的包(向@akrun点点头):


我的错。“零件号”=项目。我的坏。“零件号”=Item.Nbr
dplyr
df%>%mutate(两者=供应+需求)%%>%groupby(Item.Nbr)%%>%summary(funs(sum(!))
他也会抛出一个数据表
setDT(df)[,c(.SD,((两者=供应+需求))][,lapply(.SD,function(x)sum(x==0)),by=Item.Nbr]
*希望Nodl如果我的数据帧df有更多的列,我会怎么做。但我感兴趣的只是供应、需求和项目。Nbr和他们的总结如上所述。我应该从df创建一个子集数据帧,然后运行上面的命令吗?@user2543622-您可以这样做:
aggregate(cbind(supply,demand,both=supply+demand)~Item.Nbr,data=df,FUN=function(x)sum(x==0))
dplyr
df%>%mutate(both=supply+demand)%%>%groupby(Item.Nbr)%>%总结每个(funs)(sum(!)
Hell也会抛出一个数据表onesetDT(df)[,c(.SD,((两者都=供给+需求))][,lapply(.SD,函数(x)sum(x==0)),by=Item.Nbr]*希望nod如果我的数据帧df有更多的列,我会怎么做。但我感兴趣的只是供应、需求和项目。Nbr和他们的总结如上所述。我应该从df创建一个子集数据帧,然后运行上面的命令吗?@user2543622-您可以这样做:
aggregate(cbind(supply,demand,both=supply+demand)~Item.Nbr,data=df,FUN=function(x)sum(x==0))
df %>% 
  mutate(both= supply+demand) %>%
  group_by(Item.Nbr) %>% 
  summarise_each(funs(sum(!.)))

#Source: local data frame [2 x 4]
#
#   Item.Nbr supply demand both
#1 82078-002      0      0    0
#2 82078-007      2      3    1