[R] table() reading problem

Sarah Goslee sarah.goslee at gmail.com
Wed Mar 16 14:00:31 CET 2011


It isn't entirely clear to me what you want.

table() can function with many kinds of data, not just integers, so it
returns a vector with names.

For your case, with integer classes, you seem to possibly want:
> x <- table(k)
> x <- rbind(as.numeric(names(x)), as.numeric(x))
> x
     [,1] [,2] [,3] [,4] [,5] [,6]
[1,]    1    2    3    5    6    9
[2,]    9    2    3    1    1    1


but a more general approach is:
> x <- table(k)
> x[1]
1
9
> names(x[1])
[1] "1"
> as.numeric(names(x[1]))
[1] 1

Sarah

On Wed, Mar 16, 2011 at 5:20 AM, fre <fre_stamlid at hotmail.com> wrote:
> I have the following problem:
>
> I have some string with numbers like k. I want to have a table like the
> function table() gives. However I am not able to call the first row, the 1,
> 2, 3, 5, 6 or 9. I tried to do that by a data.frame, but that doesn't seem
> to work either. The levels keep bothering me.
>
> This is an example of the code:
>
> k<-c(1,1,1,1,1,3,5,6,2,1,3,9,2,3,1,1,1)
>> table(k)
> k
> 1 2 3 5 6 9
> 9 2 3 1 1 1
>> x<-table(k)
>>
>> dim(x)
> [1] 6
>>
>> x[1] #But i only want the one
> 1
> 9
>>
>> x<-data.frame(x)
>>
>> x[1,1] #You are not allowed to use this one for example 3*x[1,1] is
>> impossible
> [1] 1
> Levels: 1 2 3 5 6 9
>>
>
> I hope anyone has an idea of using the table function without this
> inconvenience. I thought about writing a counter myself, but that seems
> complicated.
> Because I have to examine very large examples later on, I don't want to slow
> the calculations down if possible.
>
> Thanks for your help in advance.
>
> Frederique
>

-- 
Sarah Goslee
http://www.functionaldiversity.org



More information about the R-help mailing list