大きなデータフレームがあります。私は1つの列の値の条件に基づいてサブセットを作りたい。セイ:1つの列の条件に基づいてデータフレームをサブセット化する
a<-data.frame(x=rep(1:5,5),y=rnorm(25),z=runif(25))
私は列x
の値に基づいてサブセットを作りたいです。たとえば、値がx=c(2,3,5)
で、別のデータフレームを作成します。我々はx
ベクトルに基づいてvector
を作成するために、列 'X' をサブセットする必要がある場合は
大きなデータフレームがあります。私は1つの列の値の条件に基づいてサブセットを作りたい。セイ:1つの列の条件に基づいてデータフレームをサブセット化する
a<-data.frame(x=rep(1:5,5),y=rnorm(25),z=runif(25))
私は列x
の値に基づいてサブセットを作りたいです。たとえば、値がx=c(2,3,5)
で、別のデータフレームを作成します。我々はx
ベクトルに基づいてvector
を作成するために、列 'X' をサブセットする必要がある場合は
我々は唯一の列 'x' は
a1 <- a[a$x %in% x, "x", drop=FALSE]
をサブセット化するために%in%
a1 <- a[a$x %in% x,]
を使用することができます
v1 <- a$x[a$x %in% x]
subset
:
filter <- c(2,5)
subset(a, x %in% filter)
または同等に:
subset(a, match(x, filter, nomatch = 0)>0)
それとも
a[match(a$x, filter, nomatch = 0)>0,]
# x y z
# 2 2 0.76230930 0.9704342
# 5 5 -1.61846247 0.5786633
# 7 2 0.94024182 0.2805524
# 10 5 -0.08851427 0.6426568
# 12 2 0.78745436 0.1129637
# 15 5 -2.41274754 0.4826690
# 17 2 -0.37616238 0.9518877
# 20 5 1.18745381 0.8110062
# 22 2 0.03233245 0.4599623
# 25 5 -2.28360189 0.4836900
私たちは、データ操作のための値マッチング機能%in%
とdplyr
パッケージでfilter
動詞(偉大なパッケージを使用することができます)。
library(dplyr)
a1 <- data.frame(x = rep(1:5,5), y=rnorm(25), z=runif(25))
a2 <- filter(a1, x %in% c(2,3,5))
> a2
x y z
1 2 0.28184946 0.3564756
2 3 0.05634123 0.9826746
3 5 -0.58611510 0.8119334
4 2 0.45211282 0.6267487
5 3 -0.64741961 0.7600619
6 5 -0.28781978 0.3216957
7 2 0.51440342 0.5165707
8 3 1.41958340 0.2328647
9 5 -0.27751501 0.5400576
10 2 -0.74835287 0.7976089
11 3 2.42364991 0.4141980
12 5 0.22175161 0.1051387
13 2 1.54876157 0.6408956
14 3 0.54940989 0.3968186
15 5 -1.16333440 0.9359615
別のベクターを作成しますか? x = c(2,3,5) – G1124E
@ G1124Eと答えてください。私は、 'x'ベクトルの値に基づいて 'a'をサブセット化することを理解しています。 – akrun
はい。私は列xの値に基づいて別のdfを持っています。たとえば上記のdf 'a'では、2,3および5に等しい列xの値だけをとります。 – G1124E