如何为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

以上是 如何为R数据帧中的列的特定值创建行百分比的随机样本? 的全部内容, 来源链接: utcz.com/z/335214.html

回到顶部