R 添加新列并指定值

R 添加新列并指定值,r,R,我有一个数据帧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

我有一个数据帧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

谢谢

如果没有其他要求,我会使用:

df1$new <- ifelse(year == 2001, 1, 0)
df1$new只要做

 df1$new <- +(df1$year==2001)

df1$new@akrun你应该把它作为一个答案,它非常聪明。的确如此。我想把这看作一个答案,以及它为什么有效。我以前从未见过它。对于所有新的
R
用户,考虑使用
ifelse
解决方案。这只是
(year==2001)+0L
(year==2001)*1L
强制为整数的方法之一。但是,我认为它应该比其他方法更快。我见过@Frank使用这种代码打高尔夫。我只尝试过逻辑到二进制的转换。你有什么具体的例子应该应用它吗?你在这里真正想要实现什么?我能看到的唯一的原因是想要这样做,这将是一个指标。我认为你不需要在R。