簡體   English   中英

在 R 中選擇數據幀的行

[英]Selecting rows of a data frame in R

考慮以下數據集。

id var1 var2
1   A   33
2   B   23
3   A   45
4   A   55
5   B   22
6   A   33
7   B   90
8   A   78
9   B   12
10  A   11

我想分別從AB類別中抽取大小為54的隨機樣本(行)。 有人可以幫幫我嗎? 謝謝!

您可以使用sample

sample_1 <- sample(df[df$var1 == "A", ]$var2, 5)
sample_2 <- sample(df[df$var1 == "B", ]$var2, 4)

使用replace=TRUE進行替換采樣。

數據

df <- read.table(text="id var1 var2
1   A   33
2   B   23
3   A   45
4   A   55
5   B   22
6   A   33
7   B   90
8   A   78
9   B   12
10  A   11", header=TRUE)

一個選項是split數據集並使用Map中的sample

do.call(rbind, Map(function(dat, y)
   dat[sample(seq_len(nrow(dat)), size = y),], split(df, df$var1), c(5, 4)))

數據

df <- structure(list(id = 1:10, var1 = c("A", "B", "A", "A", "B", "A", 
"B", "A", "B", "A"), var2 = c(33L, 23L, 45L, 55L, 22L, 33L, 90L, 
78L, 12L, 11L)), class = "data.frame", row.names = c(NA, -10L
))

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM