How to multiply alternate values using R? -


i have list of dates , corresponding values. want segregate dates month september or alternate date, , multiply corresponding value 10. please guide me on this.

    date    index values jan 2011            2134 feb 2011            2258 mar 2011            2032 aug 2011            2012 sep 2011            2236 sep 2012            2235 sep 2013            2238 

if want separate dates 'sep' , multiply 'index_vaues' 10, create numeric row index elements 'sep' in 'date' column using grep. use index subset 'index_values' , multiply elements '10'.

indx <- grep('sep', df1$date) df1$index_values[indx] <- df1$index_values[indx]*10 df1[indx,] #      date index_values #5 sep 2011        22360 #6 sep 2012        22350 #7 sep 2013        22380 

or using data.table, more faster. convert 'data.frame' 'data.table' (setdt(df1)), first 3 characters of 'date' substr, create logical index (=='sep') , assign (:=) 'index_values' true i multiplying 10.

library(data.table) setdt(df1)[substr(date, 1,3)=='sep', index_values:= 10*index_values] 

if need subset 'date' 'sep'

setdt(df1)[substr(date, 1,3)=='sep'][, index_values:=10*index_values] 

Comments