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 <robst...@gmail.com> wrote:

From: Robert Wilkins <robst...@gmail.com>
Subject: [R] how to loop thru a matrix or data frame , and append calculations to a new data frame?
To: r-help@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@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.

David Winsemius, MD
Heritage Laboratories
West Hartford, CT

______________________________________________
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