Hi All,
I am writing a macro which perform following functionality
1) take a file say excel or csv
2)read all the labels
3) dynamically genrate square,square-root,log of each column with
appropiate column name and write it to a new file,
i am stuck at dynamically genrateing the column names like Revenue_square
etc.
Exmaple " i have a excel with 3 columns Revenue, cost & profit
Now my Macro should be able to read the values and for each coulmn and
perform square,square root and log of Revenue, cost & profit and write to
excel with column names as Revenue_square,Revenue_squareroot, Revenue_log
cost_square etc...
Below is my code
test$Rev_square = test[c(1)]^2
data=read.delim2("//ARLMSAN01/CTRX_Data/vikasK.sharma/Desktop/balancesheet_example.csv",header=T,sep=",")
headings = names(data)
show (headings)
HEADINGS = toupper(headings)
for ( i in 1:length(HEADINGS))
{
show(i)
data$Rev_square=data[c(i)]^2
show(data$Rev_square)
names(data)
}
--
View this message in context:
http://r.789695.n4.nabble.com/building-transformation-macro-tp4631175.html
Sent from the R help mailing list archive at Nabble.com.
On May 24, 2012, at 4:43 AM, davv.vikas wrote:> Hi All, > > I am writing a macro which perform following functionality > 1) take a file say excel or csv > 2)read all the labels > 3) dynamically genrate square,square-root,log of each column with > appropiate column name and write it to a new file, > > i am stuck at dynamically genrateing the column names like > Revenue_square > etc. > > Exmaple " i have a excel with 3 columns Revenue, cost & profit > Now my Macro should be able to read the values and for each coulmn > and > perform square,square root and log of Revenue, cost & profit and > write to > excel with column names as Revenue_square,Revenue_squareroot, > Revenue_log > cost_square etc... > > Below is my code > > test$Rev_square = test[c(1)]^2 >I would use test[[1]]^2. Generally one wants to pull the vector out of the list "container".> > data=read.delim2("//ARLMSAN01/CTRX_Data/vikasK.sharma/Desktop/ > balancesheet_example.csv",header=T,sep=",") > > headings = names(data) > show (headings) > HEADINGS = toupper(headings) > # Perhaps replacing your for-loop body with thisfor ( i in 1:length(HEADINGS))> { >assign(paste(HEADINGS[i], "Rev_Sqr", sep=""), data[[i]]^2)> > }The generalization to additional transformations seems obvious. -- David Winsemius, MD West Hartford, CT
On May 24, 2012, at 9:06 AM, David Winsemius wrote:> > On May 24, 2012, at 4:43 AM, davv.vikas wrote: > >> Hi All, >> >> I am writing a macro which perform following functionality >> 1) take a file say excel or csv >> 2)read all the labels >> 3) dynamically genrate square,square-root,log of each column with >> appropiate column name and write it to a new file, >> >> i am stuck at dynamically genrateing the column names like >> Revenue_square >> etc. >> >> Exmaple " i have a excel with 3 columns Revenue, cost & profit >> Now my Macro should be able to read the values and for each coulmn >> and >> perform square,square root and log of Revenue, cost & profit and >> write to >> excel with column names as Revenue_square,Revenue_squareroot, >> Revenue_log >> cost_square etc... >> >> Below is my code >> >> test$Rev_square = test[c(1)]^2 >> > I would use test[[1]]^2. Generally one wants to pull the vector out > of the list "container". >> >> data=read.delim2("//ARLMSAN01/CTRX_Data/vikasK.sharma/Desktop/ >> balancesheet_example.csv",header=T,sep=",") >> >> headings = names(data) >> show (headings) >> HEADINGS = toupper(headings) >> # Perhaps replacing your for-loop body with this > for ( i in 1:length(HEADINGS)) >> { >> > assign(paste(HEADINGS[i], "Rev_Sqr", sep=""), data[[i]]^2) >> >> } > > The generalization to additional transformations seems obvious.The solution offered in StackOverflow by Greg Snow is better. AND please stop cross-posting. It is not specifically deprecated on SO, but it is on Rhelp. -- David Winsemius, MD West Hartford, CT