R中的串行子集

pdm

我正在处理大型数据集。我必须从一个数据集中提取值,这些值的标识符存储在另一个数据集中。因此,基本上,我为一个类别的每个值两次设置子集。对于多个类别,我必须组合这样的双重设置的值。因此,我正在执行类似于以下所示的操作,但是我认为必须有一种更好的方法来执行此操作。

示例数据集

set.seed(1)
df <- data.frame(number= seq(5020, 5035, 1), value =rnorm(16, 20, 5),
        type = rep(c("food", "bar", "sleep", "gym"), each = 4))

df2 <- data.frame(number= seq(5020, 5035, 1), type = rep(LETTERS[1:4], 4))

提取A级价值

asub_df2 <-subset(df2, type == "A" )
asub_df <-subset(df, number == asub_df2$number)
new_a <- cbind(asub_df, grade = rep(c("A"),nrow(asub_df)))

类似地,提取B级的价值new_b并结合起来进行任何分析。

我们可以使用

阿克伦

您可以split使用“ df2”并使用lapply

Filter(Negate(is.null),
   lapply(split(df2, df2$type), function(x) {
        x1 <- subset(df, number==x$number)
          if(nrow(x1)>0) {
           transform(x1, grade=x$type[1])
             }
          }))  

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

TOP 榜单

热门标签

归档