[R] formatting a list
Charles C. Berry
cberry at tajo.ucsd.edu
Mon Oct 22 18:30:46 CEST 2007
Tomas,
Three different ways to create a list of 7000 vectors from a file of 7000
rows and 19 columns are given here:
http://article.gmane.org/gmane.comp.lang.r.general/97032
which I think is what you are asking for.
If you truly need a list of 7000 lists each of length 1 containing a
vector of length 19, then do this:
list.of.lists.of.one.vector.each <- lapply( list.of.vectors, list )
BTW, as this thread appears in
http://news.gmane.org/gmane.comp.lang.r.general
the above article was the firt reply to your original query. I am puzzled
as to why you did not simply implement one of the three methods shown
there.
Chuck
On Mon, 22 Oct 2007, Tomas Vaisar wrote:
> Hi Jim,
>
> I really appreciate your help.
> From the input file I have - 19 columns, 7000 rows - the scan gives me
> the desired format of a list consisting of 19 lists with 7000 values each.
> However I need a list of 7000 lists with 19 values each. (e.g. each row
> of my input file should be a separate list bound in a list of all these
> lists)
> I use both commands you suggested -
> x <- scan('temp.txt', what=c(rep(list(0), 19)))
> followed by
> x.matrix <- do.call('rbind', x) # gives 7000 x 19 matrix.
>
> Although this makes a matrix of the correct dimensions it is not the
> "list of lists" the ROCR package expects as input. Can you convert this
> matrix into a "list of lists"? Or is there a simple way in R to convert
> a table into such a "list of lists"?
>
> Thanks again,
>
> Tomas
>
>
> jim holtman wrote:
>> That is what I thought and that is the format that the 'scan' approach
>> should provide. I was just confused when you said that you were going
>> to have to transpose it, write it and then read it back in for some
>> reason. I understand that Excel can not handle 7000 columns, but was
>> wondering where that came into play.
>>
>> On 10/21/07, Tomas Vaisar <tvaisar at u.washington.edu> wrote:
>>
>>> The data I have is tab delimited file with 7000 lines of 19 values each
>>> (representing 7000 permutations on 19 variables). I want to get it into
>>> the ROCR package which expects the data to be in lists - single list of
>>> 19 values for each permutation, e.g. list of 7000 lists of 19 values each.
>>>
>>> I hope this is little clearer.
>>>
>>> Tomas
>>>
>>> jim holtman wrote:
>>>
>>>> What is it that you want to do? The 'scan' statement give you a list
>>>> of length 7000 with 19 entries each. Do you want to create a matrix
>>>> that has 7000 rows by 19 columns? If so, then you just have to take
>>>> the output of the 'scan' and do:
>>>>
>>>> x.matrix <- do.call('rbind', x) # gives 7000 x 19 matrix.
>>>>
>>>> So I am still not sure exactly what your input is and what you want to
>>>> do with it.
>>>>
>>>> On 10/21/07, Tomas Vaisar <tvaisar at u.washington.edu> wrote:
>>>>
>>>>
>>>>> Hi Jim,
>>>>>
>>>>> thanks a lot. It works, however - my other problem is that I need to
>>>>> transpose the original table before reading it into the list because the
>>>>> data come from Excel and it can't handle 7000 columns. I could read it
>>>>> in R transpose end write into a new tab delim file and then read it back
>>>>> in, but I would think that there might be a way in R to do both.
>>>>> Would you know about the way?
>>>>>
>>>>> Tomas
>>>>>
>>>>> jim holtman wrote:
>>>>>
>>>>>
>>>>>> another choice is:
>>>>>>
>>>>>> x <- scan('temp.txt', what=c(rep(list(0), 19)))
>>>>>>
>>>>>> On 10/20/07, Tomas Vaisar <tvaisar at u.washington.edu> wrote:
>>>>>>
>>>>>>
>>>>>>
>>>>>>> Hi,
>>>>>>>
>>>>>>> I am new to R and need to read in a file with 19 columns and 7000 rows
>>>>>>> and make it into a list of 7000 lists with 19 items each. For a
>>>>>>> simpler case of 10 by 10 table I used x <-scan("file",
>>>>>>> list(0,0,0,0,0,0,0,0,0,0)), perhaps clumsy, but it did the job.
>>>>>>> However with the large 19x7000 (which needs to be transposed) I am not
>>>>>>> sure how to go about it.
>>>>>>>
>>>>>>> Coudl somebody suggest a way?
>>>>>>>
>>>>>>> Thanks,
>>>>>>>
>>>>>>> Tomas
>>>>>>>
>>>>>>> ______________________________________________
>>>>>>> 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.
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>
>>>>
>>>>
>>
>>
>>
>
> ______________________________________________
> 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.
>
Charles C. Berry (858) 534-2098
Dept of Family/Preventive Medicine
E mailto:cberry at tajo.ucsd.edu UC San Diego
http://famprevmed.ucsd.edu/faculty/cberry/ La Jolla, San Diego 92093-0901
More information about the R-help
mailing list