基于列表子集数据集

时间:2016-06-06 19:24:24

标签: r subset

验船师提交了他们在一个季节捕获的所有鸟类。我想将它们的捕获子集化,因此每个物种都是他们自己的数据帧。我可以写出各个物种,比如我在下面的最后一行中所做的。但我想要比这更光滑,而不必为整个300种可能的物种进行检查。选项?

public Intent findTwitterClient() {
    final String[] twitterApps = {
            "com.twitter.android",
            "com.twidroid",
            "com.handmark.tweetcaster",
            "com.thedeck.android" };
    Intent tweetIntent = new Intent();
    tweetIntent.setType("text/plain");
    final PackageManager packageManager = getPackageManager();
    List<ResolveInfo> list = packageManager.queryIntentActivities(
            tweetIntent, PackageManager.MATCH_DEFAULT_ONLY);
    for (int i = 0; i < twitterApps.length; i++) {
        for (ResolveInfo resolveInfo : list) {
            String p = resolveInfo.activityInfo.packageName;
            if (p != null && p.startsWith(twitterApps[i])) {
                tweetIntent.setPackage(p);
                return tweetIntent;
            }
        }
    }
    return null;
}

感谢。

1 个答案:

答案 0 :(得分:1)

正如@Richard Scriven指出的那样,您可以使用split轻松地完成此操作。这应该有效:

res<-split(Birds,Birds$Species)

我们告诉R用Species变量拆分Birds数据帧。然后,只需执行以下调用即可访问特定物种等级data.frames

res[["BAOR"]]

  Species
5    BAOR
8    BAOR

我们可以看到结果实际上是data.frame by:

class(res[["BAOR"]])
[1] "data.frame"