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.tur...@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.dun...@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@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@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

______________________________________________
R-help@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.

Reply via email to