【发布时间】:2017-12-21 14:06:27
【问题描述】:
我有一个看起来像这样的数据集,尽管实际示例有更多列。只有一排(目前)。
Results <- structure(list(PCV2_CT_Min = 7.15, PPV2_CT_Min = 11.4, PPV3_CT_Min = 8.6,
PPV4_CT_Min = 16.3, PPV_CT_Min = 29.58, NI_BOCA_CT_Min = 20.51,
SW_BOCA_CT_Min = 23.49, PCV2_CT_Count = 695L, PPV2_CT_Count = 695L,
PPV3_CT_Count = 695L, PPV4_CT_Count = 695L, PPV_CT_Count = 695L,
NI_BOCA_CT_Count = 695L, SW_BOCA_CT_Count = 695L),
.Names = c("PCV2_CT_Min", "PPV2_CT_Min", "PPV3_CT_Min", "PPV4_CT_Min", "PPV_CT_Min", "NI_BOCA_CT_Min", "SW_BOCA_CT_Min", "PCV2_CT_Count", "PPV2_CT_Count", "PPV3_CT_Count", "PPV4_CT_Count", "PPV_CT_Count", "NI_BOCA_CT_Count", "SW_BOCA_CT_Count"),
row.names = c(NA, -1L), class = c("tbl_df", "tbl", "data.frame"))
每个列名由一个变量名和一个函数名组成,所以PCV2_CT_Min是PCV2病毒测试的最小计数(CT); PCV_CT_Count 是测试的动物总数,以此类推。
它是通过在另一个数据集上运行 dplyr 中的 summarize_all 生成的,该数据集是对猪的个体病毒测试,使用的是此代码的更长版本:-
V <- Pig %>%
select(ends_with('CT')) %>%
summarise_all(funs(Min = min(.,na.rm=TRUE),
Count = n()))
在实际示例中,有更多的函数,并且它们采用不同的参数。我想最终得到的是这样的数据框:-
Parameter PCV_CT PPV2_CT PPV3_CT PPV4_CT PPV_CT NI_BOCA_CT SW_BOCA_CT
Min 7.15 11.4 8.6 16.3 29.58 20.51 23.49
Count 695 695 695 695 695 695 695
我原以为有一种简单的方法可以做到这一点,也许可以使用 tidyr 中的 seperate 命令,但我绞尽脑汁,搜索了 SO,然后更广泛的网络,并查看了 tidyr 文档,但均无济于事。我认为答案应该很明显,但我看不到。
我将不胜感激。
【问题讨论】: