Hi
Carletto Rossi <nuovo...@gmail.com> napsal dne 02.06.2009 14:12:12:
I'm sorry but i verify that Simon solution doesn't work. It makes only
the
It partially works
product between the corrispondent element of the columns (first with
first,
second with seconds, etc,...)
These are the list of R commands:
> quattro <- read.csv('new_data.csv', header=TRUE)
> names(quattro)<-c("x","y")
> x<-c(NA,quattro$x)
> y<-c(quattro$y,NA)
> quattro$t<-quattro$x*quattro$y
x and y is not quattro$x and quattro$y try
quattro$t<-x*y
instead although itself it does not work too. It throws error as x*y has
one value more then is length of your quattro data frame. You need to drop
either first or last value from x*y, it depends on you.
e.g.
quattro$t<-(x*y)[-1]
Regards
Petr
> write.table(quattro,file="with_t.csv",sep="")
This is the new_data.csv file
"Y/h","u/U_b"
0.16067E-02,-0.11652E-01
0.48616E-02,-0.28583E-01
0.82005E-02,-0.40079E-01
0.11625E-01,-0.47481E-01
0.15139E-01,-0.52047E-01
0.18743E-01,-0.54658E-01
0.22439E-01,-0.55902E-01
0.26231E-01,-0.56181E-01
0.30121E-01,-0.55777E-01
0.34111E-01,-0.54897E-01
0.38204E-01,-0.53696E-01
0.42403E-01,-0.52267E-01
0.46709E-01,-0.50663E-01
0.51126E-01,-0.48919E-01
0.55658E-01,-0.47059E-01
0.60306E-01,-0.45100E-01
0.65073E-01,-0.43057E-01
0.69964E-01,-0.40940E-01
0.74980E-01,-0.38733E-01
0.80126E-01,-0.36428E-01
0.85404E-01,-0.34044E-01
0.90817E-01,-0.31620E-01
0.96371E-01,-0.29153E-01
0.10207E+00,-0.26602E-01
0.10791E+00,-0.23957E-01
0.11390E+00,-0.21238E-01
This is the with_t.csv new file:
"x","y","t"
"1",0.0016067,-0.011652,-1.87212684e-05
"2",0.0048616,-0.028583,-0.0001389591128
"3",0.0082005,-0.040079,-0.0003286678395
"4",0.011625,-0.047481,-0.000551966625
"5",0.015139,-0.052047,-0.000787939533
"6",0.018743,-0.054658,-0.001024454894
"7",0.022439,-0.055902,-0.001254384978
"8",0.026231,-0.056181,-0.001473683811
"9",0.030121,-0.055777,-0.001680059017
"10",0.034111,-0.054897,-0.001872591567
"11",0.038204,-0.053696,-0.002051401984
"12",0.042403,-0.052267,-0.002216277601
"13",0.046709,-0.050663,-0.002366418067
"14",0.051126,-0.048919,-0.002501032794
"15",0.055658,-0.047059,-0.002619209822
"16",0.060306,-0.0451,-0.0027198006
"17",0.065073,-0.043057,-0.002801848161
"18",0.069964,-0.04094,-0.00286432616
"19",0.07498,-0.038733,-0.00290420034
"20",0.080126,-0.036428,-0.002918829928
"21",0.085404,-0.034044,-0.002907493776
"22",0.090817,-0.03162,-0.00287163354
"23",0.096371,-0.029153,-0.002809503763
"24",0.10207,-0.026602,-0.00271526614
"25",0.10791,-0.023957,-0.00258519987
"26",0.1139,-0.021238,-0.0024190082
Thanks.
Regards
PS Can i avoid to print the column with "1","2","3","4", etc... ??
2009/6/2 Petr PIKAL <petr.pi...@precheza.cz>
Hi
r-help-boun...@r-project.org napsal dne 02.06.2009 13:20:26:
> The solution I provided should work
>
> First off all give your data frame shorter and easier names e.g.
>
> names(quatrro)<-c("x","y",etc)
>
> since you want y(n)*x(n+1) an easy way to code this is to add on an
"NA"
to
> the start of x so everything shifts down a row and add an NA on the
end
of Y
> so that X and Y are the same length. look up the concatentae function
?c
to
> understand this.
>
> Data frame is not a problem. In that case its...
>
> x<-c(NA,quattro$x)
> y<-c(quattro$y,NA)
> quattro$t<-quattro$x*quatrro$y
Above will not work as your result has one value more then original data
frame
> df$t<-c(df$x,NA)*c(NA,df$y)
Error in `$<-.data.frame`(`*tmp*`, "t", value = c(NA, 3, 28, NA)) :
replacement has 4 rows, data has 3
>
She need to drop the appropriate one.
Regards
Petr
>
> then
>
> write.table(quattro,file="where you want the table to go.csv",sep="")
>
> HTH, Si.
>
>
>
> ----- Original Message -----
> From: Carletto Rossi
> To: Simon Pickett ; r-help@r-project.org
> Sent: Tuesday, June 02, 2009 12:03 PM
> Subject: Re: [R] newbie help: simple operations in R
>
>
> I' ve tried your suggestions but the results are wrong.I don't
> understand...i explain my request in a new way.
> I have this table named data-4-bk.csv
>
> "Y/h","u/U_b","v/U_b","uu/U_b^2","vv/U_b^2","uv/U_b^2","k/U_b^2"
>
0.16067E-02,-0.11652E-01,0.30712E-04,0.11377E-02,0.37886E-06,-0.12657E-05,0.13570E-02
>
0.48616E-02,-0.28583E-01,-0.10085E-03,0.72322E-02,0.44299E-04,-0.17874E-04,0.78991E-02
>
0.82005E-02,-0.40079E-01,-0.25124E-03,0.14272E-01,0.23333E-03,-0.75078E-04,0.15054E-01
>
0.11625E-01,-0.47481E-01,-0.50081E-03,0.19783E-01,0.60134E-03,-0.17623E-03,0.20764E-01
>
0.15139E-01,-0.52047E-01,-0.78504E-03,0.23607E-01,0.11297E-02,-0.31123E-03,0.25042E-01
>
0.18743E-01,-0.54658E-01,-0.11273E-02,0.26189E-01,0.17884E-02,-0.46941E-03,0.28287E-01
>
0.22439E-01,-0.55902E-01,-0.15016E-02,0.27935E-01,0.25450E-02,-0.64447E-03,0.30825E-01
>
0.26231E-01,-0.56181E-01,-0.19149E-02,0.29136E-01,0.33728E-02,-0.83204E-03,0.32881E-01
>
0.30121E-01,-0.55777E-01,-0.23570E-02,0.29974E-01,0.42480E-02,-0.10299E-02,0.34591E-01
>
0.34111E-01,-0.54897E-01,-0.28303E-02,0.30577E-01,0.51528E-02,-0.12376E-02,0.36045E-01
>
0.38204E-01,-0.53696E-01,-0.33293E-02,0.31034E-01,0.60717E-02,-0.14533E-02,0.37305E-01
>
0.42403E-01,-0.52267E-01,-0.38533E-02,0.31403E-01,0.69931E-02,-0.16763E-02,0.38415E-01
>
0.46709E-01,-0.50663E-01,-0.43996E-02,0.31712E-01,0.79083E-02,-0.19064E-02,0.39403E-01
>
> I give these R commands to import the file
>
> quattro <- read.csv('data-4-bk.csv', header=TRUE)
> attach(quattro)
> names(quattro)
>
> Then i'd like to calculate the new variable "t" defined as:
>
> First element of u/U_b column * Second element of Y/h column
> Second element of u/U_b column * Third element of Y/h column
> etc.. etc..
>
> Now i' d like to print the values of t as a new column on the
original
data-4-bk.csv
>
> Thanks and sorry for my newbie request.
>
>
>
>
>
>
> 2009/6/2 Simon Pickett <simon.pick...@bto.org>
>
> you could use a loop but maybe easier would be
> x<-c(NA,x)
> y<-c(y,NA)
> t<-x*y
>
> use write.table() to write the table to your hard drive
>
> e.g.
>
> write.table(t, file="C:/Documents and Settings/simonp/My
Documents/RELU/
> GIS data/Land Cover Map working/squares plus adjoining
parcels/Scotland/
> scotland adj squares.csv", sep = ",",row.names = F)
>
> HTH, Si.
>
> ----- Original Message ----- From: "Carletto Rossi"
<nuovo...@gmail.com>
> To: <r-help@r-project.org>
> Sent: Tuesday, June 02, 2009 11:22 AM
> Subject: [R] newbie help: simple operations in R
>
>
>
> Hi, i' d like to use R for simple calculations. I show you an
examples to
> make clear my help request
>
> I' ve a file .csv like this (my real file is composed by 10.000
lines and 8
> columns)
>
> x y
> 3 4
> 1 7
>
> I' ve imported in R correctly. Now i want create a new variable
named "t"
> and t is defined throught this relation:
>
> t = 4 (second element on x column) * 4 (first element on y
column)
>
> in what way can i calculate t and print its value on an external
file or,
> better, append t values as a column on my original csv???
>
> Thanks
>
> Emanuele
>
>
> [[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.
>
>
>
>
>
>
> [[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.
______________________________________________
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.