gpt4 book ai didi

r - 在R中分组后选择聚合列的第n个值

转载 作者:行者123 更新时间:2023-12-04 22:57:14 24 4
gpt4 key购买 nike

给定 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, 1L, 2L, 2L, 2L, 3L,
3L), .Label = c("A", "B", "C"), class = "factor"), value = c(8L,
1L, 7L, 3L, 2L, 6L, 4L, 5L)), .Names = c("group", "value"), class = "data.frame", row.names = c(NA,
-8L))

和一个索引向量(可能是 NA ):
inds <- c(2,1,NA)

我们如何获得列 value 的第 n 个元素每组, 最好在基数 R ?

例如,基于 inds ,我们想要 value 的第二个元素群内 A , 组中的第一个元素 B , NA群内 C .所以结果将是:
#[1] 1 3 NA

最佳答案

这是 mapply 的解决方案和 split :

mapply("[", with(df, split(value, group)), inds)

它返回一个命名向量
 A  B  C 
1 3 NA
with(df, split(value, group))按组拆分数据框并返回数据框列表。 mapply获取该列表和“inds”并将子集函数“[”应用于每对参数。

关于r - 在R中分组后选择聚合列的第n个值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40112146/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com