[R] Named rows in a table (data frame) read from a file

Sarah Goslee sarah.goslee at gmail.com
Thu Nov 17 01:35:09 CET 2011


Hi,

On Wed, Nov 16, 2011 at 7:11 PM, JulioSergio <juliosergio at gmail.com> wrote:
> I read a table as follows:
>
>> F1 <- read.table("Rtext3.txt")
>> F1
>  Price Floor Area Rooms Age Cent.heat
> a 52.00   111  830     5 6.2        no
> b 54.75   128  710     5 7.5        no
> c 57.50   101 1000     5 4.2        no
> d 57.50   131  690     6 8.8        no
> e 59.75    93  900     5 1.9       yes
>
> As it is seen, the rows have a name. However I don't know how to access a
> particular element from that name, for instance,
>
>> attach(F1)

That's your biggest problem. Don't attach your dataframe.

>> Price
> [1] 52.00 54.75 57.50 57.50 59.75
>> Price[["a"]]
> Error en Price[["a"]] : subíndice fuera de  los límites
>> Price$a
> Error en Price$a : $ operator is invalid for atomic vectors
>> Price['a']
> [1] NA
>> Price["a"]
> [1] NA
>
> If I cannot access particular elements of the frame components by the row names,
> is there any use of having the rows named?

Sure you can. It works just like any other indexing of data frames,
with the caveat that a data frame is really a list with the columns as
elements, so there are indexing options not available for rows.

Since you didn't provide any data, here's a toy example:

> test <- data.frame(X=1:3, Y=4:6, Z=7:9)
> rownames(test) <- c("a", "b", "c")
> test
  X Y Z
a 1 4 7
b 2 5 8
c 3 6 9
> test["a",]
  X Y Z
a 1 4 7
> test["a", "Y"]
[1] 4
> test["a",][3]
  Z
a 7

Sarah

> Thanks,
>
> Sergio.
>


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



More information about the R-help mailing list