[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