我可以聚合数据帧并在R中保留字符串变量吗?
发布时间:2020-12-14 05:00:17 所属栏目:百科 来源:网络整理
导读:我有一个表格的数据框: Family Code Length Type1 A 1 11 Alpha2 A 3 8 Beta3 A 3 9 Beta4 B 4 7 Alpha5 B 5 8 Alpha6 C 6 2 Beta7 C 6 5 Beta8 C 6 4 Beta 我想通过取长度值的平均值将数据集减少到包含Code的唯一值的数据集,但也保留所有字符串变量,即 Fam
我有一个表格的数据框:
Family Code Length Type 1 A 1 11 Alpha 2 A 3 8 Beta 3 A 3 9 Beta 4 B 4 7 Alpha 5 B 5 8 Alpha 6 C 6 2 Beta 7 C 6 5 Beta 8 C 6 4 Beta 我想通过取长度值的平均值将数据集减少到包含Code的唯一值的数据集,但也保留所有字符串变量,即 Family Code Length Type 1 A 1 11 Alpha 2 A 3 8.5 Beta 3 B 4 7 Alpha 5 B 5 8 Alpha 6 C 6 3.67 Beta 我已经尝试过aggregate()和ddply(),但是这些似乎用NA替换了字符串,我正在努力找到解决这个问题的方法. 解决方法
由于“族”和“类型”在“代码”组中是常量,因此在使用ddply时,您可以对这些组进行“分组”,而不会更改任何内容.如果您的原始数据集是dat
ddply(dat,.(Family,Code,Type),summarize,Length=mean(Length)) 给 Family Code Type Length 1 A 1 Alpha 11.000000 2 A 3 Beta 8.500000 3 B 4 Alpha 7.000000 4 B 5 Alpha 8.000000 5 C 6 Beta 3.666667 如果Family和Type在Code组中不是常量,那么您需要定义如何汇总/聚合这些值.在这个例子中,我只取一个唯一值: ddply(dat,.(Code),Family=unique(Family),Length=mean(Length),Type=unique(Type)) 更新 使用dplyr的类似选项是 library(dplyr) dat %>% group_by(Family,Type) %>% summarise(Length=mean(Length)) 和 dat %>% group_by(Code) %>% summarise(Family=unique(Family),Type=unique(Type)) (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |