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