r - 在 R 中获取 data.frame 的样本

标签 r dataframe subset

我在 R 中有以下数据框:

id<-c(1,2,3,4,10,2,4,5,6,8,2,1,5,7,7)
date<-c(19970807,19970902,19971010,19970715,19991212,19961212,19980909,19990910,19980707,19991111,19970203,19990302,19970605,19990808,19990706)
spent<-c(1997,19,199,134,654,37,876,890,873,234,643,567,23,25,576)
df<-data.frame(id,date,spent)

我需要抽取 3 个客户的随机样本(基于 id),以便提取客户的所有观察结果。

最佳答案

你想使用 %in%unique

df[df$id %in% sample(unique(df$id),3),]
##    id     date spent
## 4   4 19970715   134
## 7   4 19980909   876
## 8   5 19990910   890
## 10  8 19991111   234
## 13  5 19970605    23

使用data.table避免$引用

library(data.table)
DT <- data.table(df)

 DT[id %in% sample(unique(id),3)]
##    id     date spent
## 1:  1 19970807  1997
## 2:  4 19970715   134
## 3:  4 19980909   876
## 4:  1 19990302   567
## 5:  7 19990808    25
## 6:  7 19990706   576

这可确保您始终评估 data.table 中的表达式。

关于r - 在 R 中获取 data.frame 的样本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12032307/

相关文章:

r - 如何着色形状

python - Pandas Dataframe 按列排序

validation - 如何验证一个 XSD 架构是另一个 XSD 架构的子集?

r - 在一行中按字数对字符串向量进行子集化

r - 将 Excel 数字转换为日期

r - 如何测量两个 CDF 之间的 "distance"?

python - 我如何将 DataFrame 中的值 'squash' 我知道每行只有一个项目放入系列中?

python - Pandas 数据框 fillna() 不工作?

javascript - 在 Apps 脚本中使用索引对数组进行子集化

javascript - R Shiny 中的绘图,包括 Javascript (d3.js)