5

yというデータフレームがあります

dput(y)
structure(list(val1 = c(25L, 615L, 30L, 76L, 97L, 211L, 0L, 40L, 
10L, 10L), val2 = c(101L, 286L, 124L, 77L, 176L, 120L, 0L, 8L, 
56L, 49L), val3 = c(157L, 454L, 106L, 242L, 144L, 31L, 0L, 40L, 
45L, 57L)), .Names = c("val1", "val2", "val3"), row.names = c(NA, 
10L), class = "data.frame")

val1列とval2列を確認できるようにしたいのですが、val1> 10の場合は、値をTRUEに置き換えます。それ以外の場合はFALSE、val2を確認し、val2 <5の場合は、値をTRUEに置き換えます。それ以外の場合はFALSE

サブセット関数を使用してそれらを選択できますが、サブセットを使用するのではなく、値をTRUEまたはFALSEに置き換えるのが好きです。これをどのように行うかについてのアイデアはありますか?

4

2 に答える 2

12

ブール演算子を使用するだけです。

y$val1 > 10 | (y$val1 <=10 & y$val2<5)
# [1]  TRUE  TRUE  TRUE  TRUE  TRUE  TRUE  TRUE  TRUE FALSE FALSE
于 2013-02-02T19:11:52.380 に答える
4
 transform(dat, x= val1 > 10 , y = val2 < 5)
   val1 val2 val3     x     y
1    25  101  157  TRUE FALSE
2   615  286  454  TRUE FALSE
3    30  124  106  TRUE FALSE
4    76   77  242  TRUE FALSE
5    97  176  144  TRUE FALSE
6   211  120   31  TRUE FALSE
7     0    0    0 FALSE  TRUE
8    40    8   40  TRUE FALSE
9    10   56   45 FALSE FALSE
10   10   49   57 FALSE FALSE
于 2013-02-02T19:28:04.767 に答える