如果nrow = 1,则跳过ddply

use*_*931 1 r skip plyr

我有一个ddplyIP列表,并在每个IP上应用乐趣.我希望有趣的是只返回一个值nrow(ip.data) > 1.否则,我想ddply跳过该IP并继续.我怎样才能做到这一点?

例如:

pd.outs <- ddply(server_ips, .(ip), function(x) get.ip.outs(x$ip, data))
Run Code Online (Sandbox Code Playgroud)

nrow(ip.data) 将提供(数据)子集中行数的长度.

Pey*_*ton 6

一种方法是返回到NULL哪里nrow(x)==1:

pd.outs <- ddply(server_ips, .(ip), function(x) {
  if (nrow(x) == 1) {
    return(NULL)
  }
  get.ip.outs(x$ip, data)
})
Run Code Online (Sandbox Code Playgroud)

  • 或者只是做`function(x)if(nrow(x)> 1)get.ip.outs(x $ ip,data)` (2认同)