Try this:
> df$v4 <- ave(1:nrow(df), df$v1, FUN = function(i) with(df[i,], v2[!v3]))
> df
v1 v2 v3 v4
1 10 7 0 7
2 10 5 1 7
3 10 7 2 7
4 11 9 0 9
5 11 7 2 9
> # If as is the case here that 0 is always the first in each v1 group
> # then it can be simplified further to:
> df$v4 <
On Thu, Apr 23, 2009 at 5:11 PM, ozan bakis wrote:
> Dear R Users,
> I have the following data frame:
>
> v1 <- c(rep(10,3),rep(11,2))
> v2 <- sample(5:10, 5, replace = T)
> v3 <- c(0,1,2,0,2)
> df <- data.frame(v1,v2,v3)
>> df
> v1 v2 v3
> 1 10 9 0
> 2 10 5 1
> 3 10 6 2
> 4 11 7 0
> 5 11
Dear R Users,
I have the following data frame:
v1 <- c(rep(10,3),rep(11,2))
v2 <- sample(5:10, 5, replace = T)
v3 <- c(0,1,2,0,2)
df <- data.frame(v1,v2,v3)
> df
v1 v2 v3
1 10 9 0
2 10 5 1
3 10 6 2
4 11 7 0
5 11 5 2
I want to add a new column v4 such that its values are equal to the v
3 matches
Mail list logo