r - apply a function in a data frame based on values from another data frame -


i have these 2 data.frames

df1 <- data.frame(v1=c("a", "a", "b", "b", "b"), v2=c(0.8, 0.2, 0.3, 0.4, 0.9))   v1  v2 1  0.8 2  0.2 3  b 0.3 4  b 0.4 5  b 0.9  df2 <- data.frame(v1=c("a", "b"), v2=c(0.3, 0.8))    v1  v2 1  0.3 2  b 0.8 

i add new column df1, df$v3 based on v1 names , on values of df2,i.e, if (df1$v1 < df2$v2) {df$v3 == -1, else df$v3 == 0}. illustration desired output example following:

  v1  v2 v3 1  0.8  0 2  0.2 -1 3  b 0.3 -1 4  b 0.4 -1 5  b 0.9  0 

thanks in advance

as outlined in comment, think sort of you're after:

df1 <- data.frame(v1=c("a", "a", "b", "b", "b"), v2=c(0.8, 0.2, 0.3, 0.4, 0.9)) df2 <- data.frame(v1=c("a", "b"), v2a=c(0.3, 0.8)) df <- merge(df1,df2) df$v3 <- with(df,ifelse(v2 < v2a,-1,0)) > df   v1  v2 v2a v3 1  0.8 0.3  0 2  0.2 0.3 -1 3  b 0.3 0.8 -1 4  b 0.4 0.8 -1 5  b 0.9 0.8  0 

as mentioned, changed 1 of columns names in df2 make merging work properly.


Comments

Popular posts from this blog

blackberry 10 - how to add multiple markers on the google map just by url? -

php - guestbook returning database data to flash -

delphi - Dynamic file type icon -