2015-07-27 3 views
-3

у меня есть кадр данных df1, что:Добавить новый столбец и присвоить значения

group=c(0,5,3,0,5,3) 
year=c("2001","2002","2003", "2010", "2012", "2013") 
items=c(12, 10, 15, 5, 10, 7) 
df1=data.frame(group, year, items) 

Я хочу, чтобы создать новый столбец, где я присвоить значение одного года и при этом оставляя остальные 0. Например , Я хочу, чтобы это выглядело так:

group year items new 
1  0 2001 12 1 
2  5 2002 10 0 
3  3 2003 15 0 
4  0 2010  5 0 
5  5 2012 10 0 
6  3 2013  7 0 

Спасибо!

+1

Что вы на самом деле пытаетесь достичь здесь? –

+1

Единственная причина, по которой я могу видеть, что вы хотите сделать это, будет индикатором. И я не думаю, что это нужно в R. –

ответ

4

При отсутствии других требований, я хотел бы использовать:

df1$new <- ifelse(year == 2001, 1, 0) 
+1

@akrun. Вы должны были сохранить это в качестве ответа, это довольно умно. – nrussell

+0

Действительно. Я хотел бы видеть это как ответ и почему он работает. Я никогда этого не видел. – Benjamin

+0

[_caveat emptor_] (http://stackoverflow.com/questions/16275149/does-ifelse-really-calculate-both-of-its-vectors-every-time-is-it-slow) для всех новых 'R' пользователей, рассматривающих решение 'ifelse'. – MichaelChirico

Смежные вопросы