替换dplyr R中的循环

时间:2015-07-22 14:42:15

标签: r loops dplyr

所以我试图使用dplyr withou循环来编程函数,这里有一些我不知道怎么做

假设我们有电视台(x,y,z)和月(2,3)。如果我按此分组说我们得到 此输出还具有汇总数值

TV  months  value

x    2      52
y    2      87
z    2      65
x    3      180
y    3       36
z    3       99

这适用于评估品牌。

然后我会有很多我需要过滤的品牌,只能获得价值> = 0.8 *评估品牌和价值的价值。 < = 1.2 *评估品牌的价值

所以例如从这个开始我只想过滤前两个,这应该对所有月份和电视组合进行

brand  TV MONTH value

sdg     x  2     60
sdfg    x  2     55
shs     x  2     120
sdg     x  2     11
sdga    x  2     5000

1 个答案:

答案 0 :(得分:1)

正如@akrun所说,你需要结合使用合并和子集。这是一个基础R解决方案。

$Services = Get-WmiObject -Class Win32_Service -Filter {State != 'Running' and StartMode = 'Auto'} |
Where-Object {$Exclude -notcontains $_.Name}

数据

m <- merge(df, data, by.x=c("TV", "MONTH"), by.y=c("TV", "months"))
m[m$value.x >= m$value.y*0.8 & m$value.x <= m$value.y*1.2,][,-5]
#  TV MONTH brand value.x
#1  x     2   sdg      60
#2  x     2  sdfg      55