Hello Guys
I am new at writing Functions in R, and as a result am struggling with it. 
I am trying to use Google & other resources, but it's hard to find 
solutions when you don't know what to look for. 

I have the following small dataset
> dput(sub)
structure(list(week = c(1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 
13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 
29, 30), value = c(9.45, 7.99, 9.29, 11.66, 12.16, 10.18, 8.04, 
11.46, 9.2, 10.34, 9.03, 11.47, 10.51, 9.4, 10.08, 9.37, 10.62, 
10.31, 10, 13, 10.9, 9.33, 12.29, 11.5, 10.6, 11.08, 10.38, 11.62, 
11.31, 10.52)), .Names = c("week", "value"), row.names = c(NA, 
-30L), class = "data.frame")

I want to take each of the value and subtract from a target {in this case 
its 10}. This is what I have written in my function so far:
vmask <- function(data,target){
for(k in 1:length(data))
deviation <- data[k]- target
dev <- return(data.frame(cbind(data,deviation)))
return(dev)
}
vmask(sub,10)
View(dev)

But when I run this I get the results as expected. But I expected the new 
coloumn to be called "deviation", whereas R just calls in "value.1". How 
can I fix this?
Also I was hoping to see this new dataset with columns "week", "value", 
and now "deviation" when I use "View(dev) - but it comes up with error 
'dev not found'. How can i fix this? Also is there anyway instead of me 
making a new dataset called "dev" with the 3 columns, I can just re-use my 
original dataset "sub" and give me all the 3 new columns?

The next step I want to do is to perform a cumulative sum. So looking at 
the results, I want a new coloumn in existing dataset (or new dataset), 
which will now have 4 columns. The 4th column I want to be called "CuSum". 
So the first row of Cusum will be "-0.55", the second = "-0.55+(-2.01)" 
which will give me "-2.56" and so on forth.

How can I do this in R using a function? Please help



***********************************************************************************************************************************************************************************************************************
MORE TH>N is a trading style of Royal & Sun Alliance Insurance plc (No. 93792). 
Registered in England and Wales at St. Mark’s Court, Chart Way, Horsham, West 
Sussex, RH12 1XL. 

Authorised by the Prudential Regulation Authority and regulated by the 
Financial Conduct Authority and the Prudential Regulation Authority.
************************************************************************************************************************************************************************************************************************

        [[alternative HTML version deleted]]

______________________________________________
R-help@r-project.org mailing list
https://stat.ethz.ch/mailman/listinfo/r-help
PLEASE do read the posting guide http://www.R-project.org/posting-guide.html
and provide commented, minimal, self-contained, reproducible code.

Reply via email to