如何为R数据帧中的列的特定值创建行百分比的随机样本?
随机抽样是数据分析的重要组成部分,大多数情况下,我们需要基于行而不是列创建随机样本,因为行代表案例。为了从R数据帧中为列的特定值创建行百分比的随机样本,我们可以使用带有哪个函数的样本函数。
请看以下数据帧-
示例
set.seed(887) grp<-sample(LETTERS[1:4],20,replace=TRUE) Score<-sample(101:150,20) df1<-data.frame(grp,Score) df1
输出结果
grp Score 1 D 135 2 D 114 3 C 121 4 C 150 5 B 129 6 A 110 7 D 126 8 D 132 9 C 118 10 D 102 11 B 103 12 D 145 13 A 128 14 C 147 15 B 106 16 B 125 17 D 130 18 B 131 19 A 142 20 C 143
根据列grp的A随机采样百分之五十的行-
示例
df1[sample(which(df1$grp=='A'),round(0.5*length(which(df1$grp=='A')))),]
输出结果
grp Score 2 A 138 20 A 125
让我们看另一个例子-
示例
y1<-sample(c("YT1","YT2","YT3"),20,replace=TRUE)
y2<-rnorm(20,10,1) df2<-data.frame(y1,y2)
df2输出结果
y1 y2 1 YT2 10.886273 2 YT1 9.534332 3 YT1 8.353436 4 YT1 10.878407 5 YT2 9.881384 6 YT2 9.825197 7 YT3 8.805524 8 YT3 10.189767 9 YT1 11.615293 10 YT1 10.194561 11 YT3 10.317023 12 YT1 11.570260 13 YT1 9.488106 14 YT2 10.340876 15 YT2 7.425779 16 YT2 10.085891 17 YT1 11.023932 18 YT2 10.301987 19 YT3 10.234140 20 YT1 9.048794
根据第y1列的YT1随机采样百分之三十的行-
示例
df2[sample(which(df2$y1=='YT1'),round(0.3*length(which(df2$y1=='YT1')))),]
输出结果
y1 y2 2 YT1 10.400617 13 YT1 8.977768
热门推荐
10 新年门口花束祝福语简短
11 盘锦结婚祝福语大全简短
12 父母生日祝福语 简短独特
13 家庭恩爱祝福语简短英文
14 高考俄语祝福语大全简短
15 虎年祝福语 诗句唯美简短
16 生日婚礼祝福语简短精辟
17 虎年喝酒拜年祝福语简短
18 教师闺蜜祝福语简短