Duh, thought of that after I'd left for dinner :(
--- On Sat, 10/31/09, David Winsemius <dwinsemius at comcast.net> wrote:
From: David Winsemius <dwinsemius at comcast.net> Subject: Re: [R] how to loop thru a matrix or data frame , and append calculations to a new data frame? To: "John Kane" <jrkrideau at yahoo.ca> Cc: r-help at r-project.org, "Robert Wilkins" <robstdev at gmail.com> Received: Saturday, October 31, 2009, 2:00 PM On Oct 31, 2009, at 12:33 PM, John Kane wrote:
Do you mean to apply the same calculation to each
element?
? apply mydata? <- data.frame(aa = 1:5, bb= 11:15) mp5 <- function(x) x*5 mp5data <-? apply(mydata, 2, mp5) mp5data
It would have been much more compact (and in the spirit of functional programming) to just do: mp5data <- mydata*5 # binary operations applied to dataframes give sensible results when the data types allow. mp5data ? ???aa bb [1,]? 5 55 [2,] 10 60 [3,] 15 65 [4,] 20 70 [5,] 25 75 Many times the loops are implicit in the vectorized design of R. And that solution would not result in the structure requested, for which some further "straightening" would be needed:
mp5data <- as.vector(as.matrix(mydata)*5) mp5data
[1]? 5 10 15 20 25 55 60 65 70 75 -- David
This is functionally equivelent to a double if loop.
mydata? <- data.frame(aa = 1:5, bb= 11:15)
newdata <- data.frame(matrix(rep(NA,10), nrow=5))
for (i in 1:length(mydata[1,])) {
? for (j in 1:5) {
? ? newdata[j,i] <- mydata[j,i]*5
}
? ? }
newdata
--- On Fri, 10/30/09, Robert Wilkins <robstdev at gmail.com>
wrote:
From: Robert Wilkins <robstdev at gmail.com> Subject: [R] how to loop thru a matrix or data
frame , and append calculations to? a new data frame?
To: r-help at r-project.org Received: Friday, October 30, 2009, 11:46 AM How do you do a double loop through a matrix or data frame , and within each iteration , do a calculation and
append it to a
new, second data frame? (So, if your original matrix or data frame is 4 x
5 , then
20 calculations are done, and the new data frame,
which had 0
rows to start with, now has 20 rows)
______________________________________________ R-help at 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 at 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. David Winsemius, MD Heritage Laboratories West Hartford, CT
__________________________________________________________________ Yahoo! Canada Toolbar: Search from anywhere on the web, and bookmark your favourite sites. Download it now http://ca.toolbar.yahoo.com.