Есть ли подобный способ, как х?y: z в R? - PullRequest
1 голос
/ 25 марта 2012

С

df <- data.frame(v1=c(1:5), v2=c(9,32,6,17,11))

Мне нужно добавить новый столбец v3 со значением 1 или 0 в зависимости от того, являются ли значения в v2 больше 10 или нет, чтобы:

df
  v1 v2 v3
1  1  9  0
2  2 32  1
3  3  6  0
4  4 17  1
5  5 11  1

Есть ли такая вещь, как х?y: z в R?Если нет, каков хороший способ решить вышесказанное?Спасибо!

Ответы [ 2 ]

7 голосов
/ 25 марта 2012

ifelse(..) подходит ближе всего:

R> df <- data.frame(v1=c(1:5), v2=c(9,32,6,17,11))
R> df$v3 <- ifelse(df$v2 > 10, 1, 0)
R> df
  v1 v2 v3
1  1  9  0
2  2 32  1
3  3  6  0
4  4 17  1
5  5 11  1
R> 
3 голосов
/ 26 марта 2012

Я не знаю, быстрее ли ifelse, но это легче читать:

> d <- data.frame(v1=c(1:5), v2=c(9,32,6,17,11))
> d$v3 <- as.numeric(d$v2 > 10)
> d
  v1 v2 v3
1  1  9  0
2  2 32  1
3  3  6  0
4  4 17  1
5  5 11  1
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...