通过排除 R 中的 NA 来创建数据框列的示例

要通过排除数据框列的缺失值来创建随机样本,我们可以使用样本函数和对数据框列的否定is.na。

例如,如果我们有一个名为 df 的数据框,其中包含具有一些 NA 的 X 列,那么我们可以使用以下命令创建一个大小为 100 的 X 值的随机样本 -

sample(df$X[!is.na(df$X)],100,replace=TRUE).

示例 1

以下是创建数据框的代码片段 -

x<-rep(c(NA,2,5,10,15),times=4)

df1<-data.frame(x)

df1

创建以下数据框 -

By the

    x

1   NA

2    2

3    5

4   10

5   15

6   NA

7    2

8    5

9   10

10  15

11  NA

12   2

13   5

14  10

15  15

16  NA

17   2

18   5

19  10

20  15

要通过排除上面创建的数据框中的 NA 来创建大小为 100 的 x 的随机样本,请将上面的代码添加到以下代码段中 -

x<-rep(c(NA,2,5,10,15),times=4)

df1<-data.frame(x)

sample(df1$x[!is.na(df1$x)],100,replace=TRUE)

输出结果

如果您将上述所有给定的片段作为单个程序执行,它会生成以下输出 -

[1] 10 10 5 10 5 2 2 2 15 2 2 5 10 10 2 15 10 10 2 5 2 2 10 2

10

[26] 15 2 10 10 2 10 5 2 15 15 10 5 2 5 2 15 5 10 10 10 10 5 15 2

10

[51] 10 15 5 10 15 10 2 10 15 15 15 10 15 15 2 5 5 15 2 15 15 5 2 2

5

[76] 5 2 10 2 10 2 15 10 5 15 2 10 5 15 15 15 10 2 10 5 15 5 5 15

2

示例 2

以下代码段创建了一个示例数据框 -

y<-rep(c(NA,rnorm(1),rnorm(1),rnorm(1)),times=5)

df2<-data.frame(y)

df2

创建以下数据框 -

            y

1           NA

2   -1.2548971

3    1.1956757

4    0.6556753

5           NA

6   -1.2548971

7    1.1956757

8    0.6556753

9           NA

10  -1.2548971

11   1.1956757

12   0.6556753

13          NA

14  -1.2548971

15   1.1956757

16   0.6556753

17          NA

18  -1.2548971

19   1.1956757

20   0.6556753

要通过在上面创建的数据框中排除 NA 来创建大小为 100 的 y 随机样本,请将以下代码添加到上面的代码段中 -

y<-rep(c(NA,rnorm(1),rnorm(1),rnorm(1)),times=5)

df2<-data.frame(y)

sample(df2$y[!is.na(df2$y)],50,replace=TRUE)

输出结果

如果您将上述所有给定的片段作为单个程序执行,它会生成以下输出 -

[1] 0.6556753 -1.2548971 0.6556753 1.1956757 0.6556753 0.6556753

[7] -1.2548971 0.6556753 0.6556753 0.6556753 -1.2548971 1.1956757

[13] 0.6556753 -1.2548971 -1.2548971 -1.2548971 0.6556753 1.1956757

[19] -1.2548971 -1.2548971 0.6556753 -1.2548971 1.1956757 1.1956757

[25] 0.6556753 0.6556753 1.1956757 1.1956757 -1.2548971 0.6556753

[31] 0.6556753 1.1956757 0.6556753 1.1956757 0.6556753 0.6556753

[37] 0.6556753 -1.2548971 1.1956757 0.6556753 0.6556753 -1.2548971

[43] -1.2548971 0.6556753 1.1956757 0.6556753 -1.2548971 1.1956757

[49] -1.2548971 -1.2548971

示例 3

以下代码段创建了一个示例数据框 -

z<-rep(c(NA,rpois(1,5),rpois(1,2),rpois(1,10),rpois(1,3)),times=4)

df3<-data.frame(z)

df3

创建以下数据框 -

  z

1  NA

2   7

3   2

4  10

5   1

6  NA

7   7

8   2

9  10

10  1

11 NA

12  7

13  2

14 10

15  1

16 NA

17  7

18  2

19 10

20  1

要通过排除上面创建的数据框中的 NA 来创建大小为 100 的 z 的随机样本,请将以下代码添加到上面的代码段中 -

z<-rep(c(NA,rpois(1,5),rpois(1,2),rpois(1,10),rpois(1,3)),times=4)

df3<-data.frame(z)

sample(df3$z[!is.na(df3$z)],200,replace=TRUE)

输出结果

如果您将上述所有给定的片段作为单个程序执行,它会生成以下输出 -

[1] 10 2 2 2 7 2 1 2 10 2 10 2 1 1 7 1 10 2 10 1 2 10 7 1

7

[26] 1 2 10 2 2 10 10 2 7 10 7 7 7 10 2 1 2 2 10 2 2 10 10 7

7

[51] 1 7 1 10 2 10 7 2 7 2 10 2 1 7 7 7 2 2 10 10 10 10 7 7

2

[76] 2 2 1 1 7 7 7 2 1 7 1 2 10 10 2 10 10 10 7 2 10 10 2 10

7

[101] 7 10 7 2 10 2 10 10 7 10 2 2 2 1 1 1 7 10 7 10 7 7 2 2

7

[126] 10 2 2 2 2 1 10 1 2 7 10 10 1 10 10 7 7 2 2 7 2 2 1 2

10

[151] 7 2 7 10 10 1 10 7 2 7 2 7 1 10 7 2 2 2 1 10 10 2 10 1

1

[176] 7 10 1 10 1 1 2 2 1 2 10 1 10 7 7 2 7 10 10 1 10 1 1 1

7

以上是 通过排除 R 中的 NA 来创建数据框列的示例 的全部内容, 来源链接: utcz.com/z/335410.html

回到顶部