假設我有一個比下面大得多的資料集:
df = data.frame(x = c("ciao mondo", "hello world", "ciao world","hello mondo","bye mondo","ciao ciao mondo"))
我想隨機抽樣而不替換幾行,所以我這樣做:
sample(df$x,size = 3, replace = F)
問題是我不再擁有采樣行的原始行索引。我的資料集非常大,因此使用諸如grepl()檢索原始行索引之類的方法效率低下。
你知道怎么做嗎?
非常感謝!
uj5u.com熱心網友回復:
不是在列上采樣,而是sample在行序列上進行,因此它將回傳行索引,該索引可以稍后用于對行進行子集
i1 <- sample(seq_len(nrow(df)), size = 3, replace = FALSE)
uj5u.com熱心網友回復:
您可以將行號放入一列,然后從該資料框中對行進行采樣。
df$row = 1:nrow(df)
df[sample(nrow(df), 3, replace = F),]
結果之后 set.seed(0)
x row
6 ciao ciao mondo 6
1 ciao mondo 1
4 hello mondo 4
轉載請註明出處,本文鏈接:https://www.uj5u.com/yidong/331172.html
上一篇:給出表示作為函式的引數
