Well, I am not trying to print anything. I just would like to get the dimension information for all the dataframes I created. Could you please help me to develop the script? Thanks. Ace On Saturday, February 11, 2017 7:53 PM, Duncan Murdoch <murdoch.duncan at gmail.com> wrote: On 11/02/2017 1:33 PM, Fix Ace via R-help wrote:> Hello, there, > I wrote a loop to check the dimension of all the .txt dataframes:> ls() >? [1] "actualpca.table" "b4galnt2"? ? ? ? "b4galnt2.txt"? ? "data" >? [5] "galnt4"? ? ? ? ? "galnt4.txt"? ? ? "galnt5"? ? ? ? ? "galnt5.txt" >? [9] "galnt6"? ? ? ? ? "galnt6.txt"? ? ? "glyco"? ? ? ? ? "glyco.txt" > [13] "i"? ? ? ? ? ? ? "mtscaled"? ? ? ? "newsig.table"? ? "nicepca" > [17] "pca"? ? ? ? ? ? "sig.txt"? ? ? ? "st3gal3"? ? ? ? "st3gal3.txt" > [21] "st3gal5"? ? ? ? "st3gal5.txt"? ? "st6gal1"? ? ? ? "st6gal1.txt" >> for(i in ls(pattern="txt")){dim(get(i))} >> > If I check individual ones, they are ok: >> dim(get("galnt4.txt")) > [1] 8 3 >> > could anyone help me to figure out why it did not work with a loop? > Thanks a lot!It's the difference between for (i in 1:10) i (which prints nothing) and for (i in 1:10) print(i) Duncan Murdoch [[alternative HTML version deleted]]
> On Feb 13, 2017, at 8:50 AM, Fix Ace via R-help <r-help at r-project.org> wrote: > > Well, I am not trying to print anything. I just would like to get the dimension information for all the dataframes I created. Could you please help me to develop the script?You should post R code that builds objects of similar structure as your use case. ( At the moment we don't know how these dataframes are assembled (in a list?) or having names with a structure that we need to get() or with an associated character vector with their names that are not R names.) -- David.> Thanks. > Ace > > On Saturday, February 11, 2017 7:53 PM, Duncan Murdoch <murdoch.duncan at gmail.com> wrote: > > > On 11/02/2017 1:33 PM, Fix Ace via R-help wrote: >> Hello, there, >> I wrote a loop to check the dimension of all the .txt dataframes:> ls() >> [1] "actualpca.table" "b4galnt2" "b4galnt2.txt" "data" >> [5] "galnt4" "galnt4.txt" "galnt5" "galnt5.txt" >> [9] "galnt6" "galnt6.txt" "glyco" "glyco.txt" >> [13] "i" "mtscaled" "newsig.table" "nicepca" >> [17] "pca" "sig.txt" "st3gal3" "st3gal3.txt" >> [21] "st3gal5" "st3gal5.txt" "st6gal1" "st6gal1.txt" >>> for(i in ls(pattern="txt")){dim(get(i))} >>> >> If I check individual ones, they are ok: >>> dim(get("galnt4.txt")) >> [1] 8 3 >>> >> could anyone help me to figure out why it did not work with a loop? >> Thanks a lot! > > It's the difference between > > for (i in 1:10) i > > (which prints nothing) and > > for (i in 1:10) print(i) > > Duncan Murdoch > > > > > [[alternative HTML version deleted]] > > ______________________________________________ > R-help at r-project.org mailing list -- To UNSUBSCRIBE and more, see > 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 Alameda, CA, USA
On 14/02/17 05:50, Fix Ace via R-help wrote:> Well, I am not trying to print anything. I just would like to get the dimension information for all the dataframes I created. Could you please help me to develop the script? > Thanks. > AceYes you *are* trying to print something. You are trying to print the dimension information, i.e. dim(get(i))!!! For Pete's sake (a) *think* about what you are doing and (b) *try* example that Duncan suggested to you. cheers, Rolf Turner> > On Saturday, February 11, 2017 7:53 PM, Duncan Murdoch <murdoch.duncan at gmail.com> wrote: > > > On 11/02/2017 1:33 PM, Fix Ace via R-help wrote: >> Hello, there, >> I wrote a loop to check the dimension of all the .txt dataframes:> ls() >> [1] "actualpca.table" "b4galnt2" "b4galnt2.txt" "data" >> [5] "galnt4" "galnt4.txt" "galnt5" "galnt5.txt" >> [9] "galnt6" "galnt6.txt" "glyco" "glyco.txt" >> [13] "i" "mtscaled" "newsig.table" "nicepca" >> [17] "pca" "sig.txt" "st3gal3" "st3gal3.txt" >> [21] "st3gal5" "st3gal5.txt" "st6gal1" "st6gal1.txt" >>> for(i in ls(pattern="txt")){dim(get(i))} >>> >> If I check individual ones, they are ok: >>> dim(get("galnt4.txt")) >> [1] 8 3 >>> >> could anyone help me to figure out why it did not work with a loop? >> Thanks a lot! > > It's the difference between > > for (i in 1:10) i > > (which prints nothing) and > > for (i in 1:10) print(i) > > Duncan Murdoch > > > > > [[alternative HTML version deleted]] > > ______________________________________________ > R-help at r-project.org mailing list -- To UNSUBSCRIBE and more, see > 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. >-- Technical Editor ANZJS Department of Statistics University of Auckland Phone: +64-9-373-7599 ext. 88276
Hi, When you want to get 'something' out of a loop you need to assign that 'something' to a variable that persists outside of the loop. I think it is a scoping thing. In your situation you could create a list with as many elements as there are objects with 'txt' in their names. I can't quite follow what is is you are after, but perhaps something like this (untested and I'm still on my first cup of coffee) ... obj_names <- ls(pattern="txt") obj_dims <- vector(mode = 'list', length = length(obj_names)) names(obj_dims) <- obj_names for (nm in obj_names)){ obj_dims[[nm]] <- dim(get(nm)) } Does that do what you want? If so, you could probably use lapply() for the purpose instead of the for loop, but even better is to store each of your objects in a list as you create them rather than letting them get loose in the global environment. That way you don't have to do this get-by-name rodeo to get info on them. Cheers, Ben> On Feb 14, 2017, at 2:57 AM, Rolf Turner <r.turner at auckland.ac.nz> wrote: > > > On 14/02/17 05:50, Fix Ace via R-help wrote: > >> Well, I am not trying to print anything. I just would like to get the dimension information for all the dataframes I created. Could you please help me to develop the script? >> Thanks. >> Ace > > Yes you *are* trying to print something. You are trying to print the dimension information, i.e. dim(get(i))!!! For Pete's sake (a) *think* about what you are doing and (b) *try* example that Duncan suggested to you. > > cheers, > > Rolf Turner >> >> On Saturday, February 11, 2017 7:53 PM, Duncan Murdoch <murdoch.duncan at gmail.com> wrote: >> >> >> On 11/02/2017 1:33 PM, Fix Ace via R-help wrote: >>> Hello, there, >>> I wrote a loop to check the dimension of all the .txt dataframes:> ls() >>> [1] "actualpca.table" "b4galnt2" "b4galnt2.txt" "data" >>> [5] "galnt4" "galnt4.txt" "galnt5" "galnt5.txt" >>> [9] "galnt6" "galnt6.txt" "glyco" "glyco.txt" >>> [13] "i" "mtscaled" "newsig.table" "nicepca" >>> [17] "pca" "sig.txt" "st3gal3" "st3gal3.txt" >>> [21] "st3gal5" "st3gal5.txt" "st6gal1" "st6gal1.txt" >>>> for(i in ls(pattern="txt")){dim(get(i))} >>>> >>> If I check individual ones, they are ok: >>>> dim(get("galnt4.txt")) >>> [1] 8 3 >>>> >>> could anyone help me to figure out why it did not work with a loop? >>> Thanks a lot! >> >> It's the difference between >> >> for (i in 1:10) i >> >> (which prints nothing) and >> >> for (i in 1:10) print(i) >> >> Duncan Murdoch >> >> >> >> >> [[alternative HTML version deleted]] >> >> ______________________________________________ >> R-help at r-project.org mailing list -- To UNSUBSCRIBE and more, see >> 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. >> > > > -- > Technical Editor ANZJS > Department of Statistics > University of Auckland > Phone: +64-9-373-7599 ext. 88276 > > ______________________________________________ > R-help at r-project.org mailing list -- To UNSUBSCRIBE and more, see > 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.Ben Tupper Bigelow Laboratory for Ocean Sciences 60 Bigelow Drive, P.O. Box 380 East Boothbay, Maine 04544 http://www.bigelow.org