【问题标题】:How to create multiple subsets within lapply如何在 lapply 中创建多个子集
【发布时间】:2013-08-26 19:31:17
【问题描述】:

我需要对多个数据子集运行相同的模型。下面是一些模拟数据。假设我想做 3 个 t 检验,都比较 var1var2,但每个都基于 group 的 3 个值的数据子集。最好的方法是什么?

d <- data.frame(var1=rnorm(10), 
            var2=rnorm(10), 
            group=sample(c(1:3), 10, replace=TRUE))

【问题讨论】:

    标签: r subset


    【解决方案1】:

    试试这个:

    lapply(split(d,d$group), function(df) t.test(x=df$var1,y=df$var2))
    

    【讨论】:

    • 如果我需要根据group==1group==2 等条件进行子集化怎么办?
    • 可能只是创建一个组合第 1 组和第 2 组的新变量并使用它而不是 d$group
    • 我的意思是在group=1group=2 上运行t.test,但不在group=3 上运行。有办法吗?谢谢!
    • @Anh 您可以使用例如lapply(split(d,d$group)[1:2], function(df) t.test(x=df$var1,y=df$var2)) 来索引split() 输出
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-12-24
    • 1970-01-01
    • 2021-10-05
    • 2021-12-27
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多