gpt4 book ai didi

r - 带替换的数据子集

转载 作者:行者123 更新时间:2023-12-02 05:40:34 27 4
gpt4 key购买 nike

我正在尝试通过替换从数据中抽取一个子集,这里我展示了一个简单的示例,如下所示:

dat <- data.frame (
group = c(1,1,2,2,2,3,3,4,4,4,4,5,5),
var = c(0.1,0.0,0.3,0.4,0.8,0.5,0.2,0.3,0.7,0.9,0.2,0.4,0.6)
)

我只想根据组号抽取一个子集。如果选择组,例如 group = 1,则将选择整个组(在我上面的简单示例中为两个组成员)。如果该组被选择了多次,则组号将更改为新组,例如 1.1、1.1、1.2、1.2、...。新数据可能如下所示:

newdat <- data.frame (
group = c(3,3,5,5,3.1,3.1,1,1,3.2,3.2,5.1,5.1,3.3,3.3,2,2,2),
var = c(0.5,0.2,0.4,0.6,0.5,0.2,0.1,0.0,0.5,0.2,0.4,0.6,0.5,0.2,0.3,0.4,0.8)
)

如有任何帮助,我们将不胜感激。

最佳答案

这是一个相当简单的解决方案,它使用 make.unique()newdat 中创建组的名称:

## Your data
dat <- data.frame (
group = c(1,1,2,2,2,3,3,4,4,4,4,5,5),
var = c(0.1,0.0,0.3,0.4,0.8,0.5,0.2,0.3,0.7,0.9,0.2,0.4,0.6)
)
n <- c(3,5,3,1,3,2,5,3,2)

## Make a 'look-up' data frame that associates sampled groups with new names,
## then use merge to create `newdat`
df <- data.frame(group = n,
newgroup = as.numeric(make.unique(as.character(n))))
newdat <- merge(df, dat)[-1]
names(newdat)[1] <- "group"

关于r - 带替换的数据子集,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11036050/

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