[R] Looping through R objects with $ operator and tags

jim holtman jholtman at gmail.com
Thu Jul 30 18:28:11 CEST 2009


I would first put the objects in a 'list' since it is easier to work
with and then use 'lapply':

> obj1 <- obj2 <- obj3 <- data.frame(Distance=1:10)
> # create a list - earier to work with
> list.obj <- list(obj1, obj2, obj3)
>
> list.obj <- lapply(list.obj, function(x){
+     x$LogDist <- log(x$Distance)
+     x   # return the modified value
+ })
>
> list.obj
[[1]]
   Distance   LogDist
1         1 0.0000000
2         2 0.6931472
3         3 1.0986123
4         4 1.3862944
5         5 1.6094379
6         6 1.7917595
7         7 1.9459101
8         8 2.0794415
9         9 2.1972246
10       10 2.3025851

[[2]]
   Distance   LogDist
1         1 0.0000000
2         2 0.6931472
3         3 1.0986123
4         4 1.3862944
5         5 1.6094379
6         6 1.7917595
7         7 1.9459101
8         8 2.0794415
9         9 2.1972246
10       10 2.3025851

[[3]]
   Distance   LogDist
1         1 0.0000000
2         2 0.6931472
3         3 1.0986123
4         4 1.3862944
5         5 1.6094379
6         6 1.7917595
7         7 1.9459101
8         8 2.0794415
9         9 2.1972246
10       10 2.3025851



On Thu, Jul 30, 2009 at 12:04 PM, Vivek Ayer<vivek.ayer at gmail.com> wrote:
> Hi all,
>
> Suppose I want to set the values in a column to the log of the values
> of another column like so:
>
> object$LogDist <- log10(object$Distance)
>
> How do I loop through the objects if I have object1, object2, etc to
> perform this function?
>
> object1$LogDist <- log10(object1$Distance)
> object2$LogDist <- log10(object2$Distance)
> object3$LogDist <- log10(object3$Distance)
>
> I was trying to use the assign and paste functions like so:
>
> for (i in c(1:10))
> assign(paste("object",i,"$LogDist"),log10(as.name(paste("object",i,"$LogDist")))
>
> but that didn't work out. It creates objects with whole name
> object1$LogDist instead of just manipulating the column that's part of
> that object.
>
> Help appreciated,
> Vivek
>
> ______________________________________________
> 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.
>



-- 
Jim Holtman
Cincinnati, OH
+1 513 646 9390

What is the problem that you are trying to solve?




More information about the R-help mailing list