通过排除 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 thex
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 210
[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
创建以下数据框 -
y1 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
创建以下数据框 -
z1 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 17
[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