gpt4 book ai didi

r - 按组拆分数据帧的最快方法,在 R 中随机播放单个向量

转载 作者:行者123 更新时间:2023-12-04 12:12:58 25 4
gpt4 key购买 nike

我熟悉 R 中的一些拆分-应用-组合函数,例如 ddply,但我不确定如何拆分数据框、修改每个子集中的单个变量,然后重新组合子集。我可以手动执行此操作,但肯定有更好的方法。

在我的示例中,我试图在一个组中打乱一个变量(但没有其他变量)。这是一个排列分析,所以我做了很多次,因此想加快速度。

allS <- split(all, f=all$cp)
for(j in 1:length(allS)){
allS[[j]]$party <- sample(x=allS[[j]]$party)
}
tmpAll <- rbind.fill(allS)

示例数据框:

all <- data.frame(cp=factor(1:5), party=rep(c("A","B","C","D"), 5))

感谢任何方向!

最佳答案

我们可以使用data.table。我们将 'data.frame' 转换为 'data.table' (setDT(all)),按 'cp' 分组,sample 'party' 并分配 (:=) 输出回“party”列。

library(data.table)
setDT(all)[, party:= sample(party) , by = cp]

关于r - 按组拆分数据帧的最快方法,在 R 中随机播放单个向量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34209496/

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