我有一個有兩個分組變數和一個結果變數的資料集。我試圖從這個資料集中模擬抽樣,但我只想獲得沒有任何一個變數的ID重復出現的樣本。
我的資料結構是這樣的,但只有幾百行:
我試圖從資料集中抽出23個觀察值,以便在樣本中既不重復wteam也不重復week。
我目前的方法是非常低效的: 我的方法是非常低效的。
然后我重復,直到我得到23。 然而,當我運行代碼時,在第一次迭代后,"outs "資料框被填滿了0,我想這是因為nfl_cur仍然被從頭過濾。
如果有任何幫助,我們將不勝感激!structure()
structure(list(wteam = c("a", "a", "b", "c", "c", "d" ), week = c(1, 1, 1, 2, 2, 2), dif = c(0.649077088, 0。 089812768, 0.173061282, 0.362544332, 0.459545808, 0.331745704)), row.names = c(NA, 6L), class = "data.frame") sims<- 10
周數<-23
outs<-as.data。 frame(matrix(0, ncol = sims,nrow = weeks))
start<-as.data。 frame(matrix(0, ncol = 3, nrow = 23))
names(start)< -names(nfl_cur)
for(i in 1。 sims) {
start[1,] < - nfl_cur %>% sample_n(1)
nfl_cur2 <- subset(nfl_cur,/span> ! (wteam %in% start$wteam))
nfl_cur2 <- subset(nfl_cur,/span> ! (week %in% start$week)>
start[2,] < -nfl_cur2 %>% sample_n(1)
nfl_cur3 <- subset(nfl_cur2,/span> ! (wteam %in% start$wteam)>
nfl_cur3 <- subset(nfl_cur2,/span> ! (week %in% start$week)>
start[3,] < -nfl_cur3 %>% sample_n(1)
nfl_cur4 <- subset(nfl_cur3,/span> ! (wteam %in% start$wteam)>
nfl_cur4 <- subset(nfl_cur3,/span> ! (week %in% start$week)>
...
outs[,i]/span><-start$dif
}
如果我理解,這可能對你有幫助
#Libraries
library(dplyr)
#示例資料
df<-
結構(list(wteam = c("a", "a"。 "b", "c"。 "c", "d" )。 周 = c(1。 1, 1。 2, 2, 2)。 dif = c(0. 649077088, 0. 089812768, 0.173061282, 0. 362544332, 0.459545808, 0. 331745704)),行。 names = c(NA。 6L), class = "data. frame")
#Sample 1 by each wteam week
df %>%
group_by(wteam,/span>week) %>%
sample_n(1)
# A tibble: 4 x 3
# Groups: wteam, week [4]
wteam week dif
<chr> < dbl> <dbl>/span>
1 a 1 0.0898
2 b 1 0.173[/span
3 c 2 0.363[/span]。
4 d 2 0.332
uj5u.com熱心網友回復:
一個帶有data.table
library(data.table)
setDT(df)[, . SD[sample(seq_len(。 N), 1)】, 。 (wteam, week)]。
輸出
wteam week dif
1: a 1 0.08981277
2: b 1 0.17306128
3: c 2 0.36254433
4: d 2 0.33174570
轉載請註明出處,本文鏈接:https://www.uj5u.com/qianduan/334056.html
標籤:
