通过匹配 R 中的向量,将数据框列值提取为向量。
要通过匹配R中的向量来提取数据框列值作为向量,我们可以使用带有%in%运算符的子集。
例如,如果我们有一个名为df的数据框,其中有一列是C和一个向量V,并且我们想提取C中的值,如果它们与V匹配,那么我们可以使用下面给出的命令-
df[df$C %in% V,"C"]
示例1
以下代码段创建了一个示例数据框和向量-
x1<-rpois(20,5) x2<-rpois(20,2) x3<-rpois(20,1) df1<-data.frame(x1,x2,x3) df1
创建了以下数据框
x1 x2 x3 1 2 4 3 2 7 1 3 3 3 0 2 4 3 1 1 5 3 1 1 6 2 0 1 7 2 3 0 8 5 4 0 9 7 3 3 10 6 1 1 11 11 1 0 12 4 1 2 13 1 1 1 14 2 2 1 15 6 1 2 16 3 5 1 17 3 0 2 18 4 1 3 19 7 3 3 20 5 0 0
要提取与上述创建的数据框中V1中的值匹配的x3列中的值,请将以下代码添加到上述代码段中-
x1<-rpois(20,5) x2<-rpois(20,2) x3<-rpois(20,1) df1<-data.frame(x1,x2,x3) df1[df1$x3 %in% V1,"x3"] V1<-c(0,1)输出结果
如果您将上述所有给定的片段作为单个程序执行,它会生成以下输出-
[1] 1 1 1 0 0 1 0 1 1 1 0
示例2
以下代码段创建了一个示例数据框和向量-
y1<-sample(1:100,20) y2<-sample(1:100,20) df2<-data.frame(y1,y2) df2
创建了以下数据框
y1 y2 1 3 93 2 37 64 3 73 84 4 43 46 5 51 91 6 99 7 7 38 71 8 78 82 9 93 73 10 20 8 11 63 58 12 1 50 13 60 40 14 46 33 15 58 97 16 41 3 17 44 77 18 68 51 19 42 75 20 94 11
要在上面创建的数据框中提取与V2中的值匹配的y2列中的值,请将以下代码添加到上述代码段中-
y1<-sample(1:100,20) y2<-sample(1:100,20) df2<-data.frame(y1,y2) df2[df2$y2 %in% V2,"y2"] V2<-c(5,10,15,25,30,35,40,45,50,55,60,65,70,75,80,85,90,95)输出结果
如果您将上述所有给定的片段作为单个程序执行,它会生成以下输出-
[1] 50 40 75
示例3
以下代码段创建了一个示例数据框和向量-
z1<-round(rnorm(20),0) z2<-round(rnorm(20),0) z3<-round(rnorm(20),0) df3<-data.frame(z1,z2,z3) df3
创建了以下数据框
z1 z2 z3 1 -1 0 0 2 0 -2 0 3 0 0 1 4 0 -1 -1 5 0 0 1 6 -1 -1 0 7 1 -1 0 8 0 0 -1 9 0 -1 -2 10 0 1 2 11 1 0 0 12 0 0 1 13 -1 0 -1 14 -1 -1 0 15 -3 0 0 16 -1 0 1 17 0 0 1 18 -1 1 -1 19 0 0 0 20 -1 1 -2
要在上面创建的数据框中提取与V3中的值匹配的z1列中的值,请将以下代码添加到上面的代码段中-
z1<-round(rnorm(20),0) z2<-round(rnorm(20),0) z3<-round(rnorm(20),0) df3<-data.frame(z1,z2,z3) df3[df3$z1 %in% V3,"z1"] V3<-c(0,1)输出结果
如果您将上述所有给定的片段作为单个程序执行,它会生成以下输出-
[1] 0 0 0 0 1 0 0 0 1 0 0 0