[R] how to address last and all but last column in dataframe
David Winsemius
dwinsemius at comcast.net
Sun Sep 7 00:56:17 CEST 2008
On Sep 6, 2008, at 4:24 PM, drflxms wrote:
> Hello Mr. Burns, Hello Mr. Dwinseminus
snip
>
>
> David, the "input" data.frame is the result of the reshape-command I
> performed. I just copied it from the R-console into the e-mail. In
> fact
> the first column "video" is not part of the data, but needed for
> analysis with kappam.fleiss function of the irr-package. Sorry, you
> are
> absolutely correct, I should have mentioned this in my question. I
> will
> improve when I ask my next question :-).
>
I have not yet picked up facility with reshape. Is there a method
using reshape to take its screen output and return a dataframe?
--
David Winsemius, MD
> Again I like to thank you for your help and wish you a pleasant
> Sunday.
> Greetings from Munich,
> Felix
>
> Patrick Burns wrote:
>> If I understand properly, you want
>>
>> input[, -c(1, ncol(input))]
>>
>> rather than
>>
>> input[[, -c(video, 21)]]
>>
>> Chapter 1 of S Poetry might be of interest to you.
>>
>> Patrick Burns
>> patrick at burns-stat.com
>> +44 (0)20 8525 0696
>> http://www.burns-stat.com
>> (home of S Poetry and "A Guide for the Unwilling S User")
>>
>> drflxms wrote:
>>> Dear R-colleagues,
>>>
>>> another question from a newbie: I am creating a lot of simple
>>> pivot-charts from my raw data using the reshape-package. In these
>>> charts
>>> we have medical doctors judging videos in the columns and the videos
>>> they judge in the rows. Simple example of chart/data.frame "input"
>>> with
>>> two categories 1/0:
>>>
>>> video 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21
>>>
>>> 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
>>> 2 2 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1
>>> 3 3 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
>>> 4 4 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
>>> 5 5 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0
>>> 6 6 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0
>>> 7 7 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
>>> 8 8 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0
>>> 9 9 0 0 0 0 0 0 0 0 0 1 0 1 1 0 1 1 0 0 0 1 0
>>> 10 10 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
>>>
>>> I recently learned, that I can easily create a confusion matrix
>>> out of
>>> this data using the following commands:
>>>
>>> pairs<-
>>> data.frame(pred=factor(unlist(input[2:21])),ref=factor(input[,22]))
>>>
>>> pred<-pairs$pred
>>> ref <- pairs$ref
>>> library (caret)
>>> confusionMatrix(pred, ref, positive=1)
>>>
>>> - where column 21 is the reference/goldstandard.
>>>
>>> My problem is now, that I analyse data.frames with an unknown
>>> count of
>>> columns. So to get rid of the first and last column for the "pred"
>>> variable and to select the last column for the "ref" variable, I
>>> have to
>>> look at the data.frame before doing the above commands to set the
>>> proper
>>> column numbers.
>>>
>>> It would be very comfortable, if I could address the last column
>>> not by
>>> number (where I have to count beforehand) but by a variable "last
>>> column".
>>>
>>> Probably there is a more easy solution for this problem using the
>>> names
>>> of the columns as well: the reference is always number "21" the
>>> first
>>> column is always called "video". So I tried:
>>>
>>> attach(input)
>>> pairs<-data.frame(pred=factor(unlist(input[[,-c(video,
>>> 21)]])),ref=factor(input[[21]]))
>>>
>>>
>>> which does not work unfortunately :-(.
>>>
>>> I'd be very happy in case someone could help me out, cause I am
>>> really
>>> tired of counting - there are a lot of tables to analyse...
>>>
>>> Cheers and greetings from Munich,
>>> Felix
>>>
>>> ______________________________________________
>>> 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.
>>>
>>>
>>>
>
More information about the R-help
mailing list