我想知道如何整理以下内容:
首先,我将选择的列聚集到一个包含三列的tibble:strain(=分组因子),params(参数名称)和值(实际值)
decimal a = 159.9m;
decimal b = 355.87m;
a = b + (b = a) - b;
然后我执行多个pairwise.t.test():
sel <- t_tcellact %>% select(strain, contains("nbr_")) %>% gather(params, values, nbr_DP:nbr_CD3p)
结果是pairwise.t.tests的结果列表,我可以用它开始清理:
test2 <- sel %>% bind_rows(sel) %>% split(.$params) %>% map(~ pairwise.t.test(x=.$values, g=.$strain, p.adj = "none"))
列表现在看起来像那样:
test3 <- lapply(test2, tidy)
依旧......
从这里我需要一个包含以下列的元素:参数(例如nbr_CD3p),group1,group2,p.value。
在这个例子中,我只有两个组,但是我希望以通用的方式进行,当我有多个组时也适用。
有没有人知道如何以优雅的方式达到这一点(没有循环)?
答案 0 :(得分:0)
我找到了一种方法:
test2 <- sel %>% bind_rows(sel) %>% split(.$params) %>% map(~ pairwise.t.test(x=.$values, g=.$strain, p.adj = "none")) %>% lapply(tidy) %>% do.call("rbind", .) %>% mutate(params = rownames(.)) %>% as_tibble()
答案 1 :(得分:0)
你应该可以使用bind_rows()
,利用.id参数:
test3 <- lapply(test2, tidy) %>%
bind_rows(.id = 'parameter')
这将使用test2的名称作为数据框中名为parameter的新列。所有这一切,在上面的评论中建议用以map_df()
替换为aosmith的lapply也应该有效。