在R中分组后选择聚合列的第n个值
发布时间:2020-12-14 04:59:14 所属栏目:百科 来源:网络整理
导读:鉴于df如下: # group value# 1 A 8# 2 A 1# 3 A 7# 4 B 3# 5 B 2# 6 B 6# 7 C 4# 8 C 5df - structure(list(group = structure(c(1L,1L,2L,3L,3L),.Label = c("A","B","C"),class = "factor"),value = c(8L,7L,6L,4L,5L)),.Names = c("group","value"),clas
鉴于df如下:
# group value # 1 A 8 # 2 A 1 # 3 A 7 # 4 B 3 # 5 B 2 # 6 B 6 # 7 C 4 # 8 C 5 df <- structure(list(group = structure(c(1L,1L,2L,3L,3L),.Label = c("A","B","C"),class = "factor"),value = c(8L,7L,6L,4L,5L)),.Names = c("group","value"),class = "data.frame",row.names = c(NA,-8L)) 索引向量(可能带NA): inds <- c(2,1,NA) 我们如何得到每组列值的第n个元素,最好是在基数R? 例如,基于inds,我们想要组A中的第二个元素值,组B中的第一个元素,组C中的NA.因此结果将是: #[1] 1 3 NA 解决方法
这是一个mapply和split的解决方案:
mapply("[",with(df,split(value,group)),inds) 它返回一个命名向量 A B C 1 3 NA with(df,group))按组拆分数据帧并返回数据帧列表. mapply接受该列表和“inds”并将子集化函数“[”应用于每对参数. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |