Question

I am having trouble extracting rownames from an object. When I type in rownames(object), I obtain "null", but if I type in object, I obtain the matrix of information. If it helps, when I type in class(object), it tells me that it is a list. What I am looking for is a method to obtain the row names on the side. Thanks!

>

        alpha84 alpha91 alpha98 alpha105 alpha112 alpha119
YBR088C    1.08    0.27    0.04    -0.51    -0.80    -0.89
YDL003W    0.62   -0.01   -0.36    -0.04    -0.55    -0.55
YDR097C    0.64    0.18   -0.05     0.03    -0.76    -0.66
YDR507C    0.53    0.13    0.07     0.14    -0.56    -0.41
YER070W    0.73    0.20    0.00     0.11    -0.53    -0.72
YER095W    0.28   -0.05   -0.11    -0.13    -0.87    -0.90
YER111C    0.37   -0.19   -0.11    -0.54    -0.34    -0.47
YGR189C    0.81    0.12    0.15    -0.39    -0.60    -1.20
YKL045W    0.46   -0.27   -0.10    -0.23    -0.42    -1.21
YLR183C    0.96    0.14    0.28    -0.17    -0.14    -0.68
YML027W    0.50   -0.01    0.11    -0.33    -0.44    -0.94
YMR179W    0.42    0.04   -0.40    -0.47    -0.12    -0.61
YNL300W    0.79    0.33    0.54    -0.09    -0.31    -1.01
YOR074C    0.73    0.09   -0.27    -0.22    -0.62    -0.80
YPL163C    1.61    0.84    0.82    -0.09    -0.48    -0.97
YPL256C    1.10    0.56    0.18    -0.32    -0.38    -1.04

structure(list(4 = structure(list(alpha0 = c(-1.15, -1.22, -0.72, -1.76, -1.46, -0.57, -1.21, -0.32, -0.8, -1.7, -1.72, -1.3, -1.24, -1.14, -2.42, -1.41), alpha7 = c(-0.86, -0.74, -0.85, -0.34, -0.76, 0.42, -0.26, -0.65, 0.01, -1.46, -0.66, 0.07, -0.78, -0.31, -2.15, -0.69), alpha14 = c(1.21, 1.34, 0.54, 0.18, 1.08, 1.03, 1.36, 0.87, 0.86, 0.93, 1.73, 0.98, 0.31, 0.57, 0.66, 1.39 ), alpha21 = c(1.62, 1.5, 1.04, 1.07, 1.5, 1.35, 1.37, 1.1, 0.84, 1.12, 1.29, 1.12, 1.46, 1.08, 1.98, 1.98), alpha28 = c(1.12, 0.63, 0.84, 0.37, 0.74, 0.64, 0.54, 1.17, 0.51, 0.91, 0.51, 0.13, 1.11, 1.17, 1.55, 0.74), alpha35 = c(0.16, 0.29, 0.24, 0.32, 0.47, 0.42, 0.18, 0.44, 0.14, 0.11, 0.28, 0.19, 0.62, 0.57, 0.78, 0.21), alpha42 = c(-0.44, -0.55, -0.64, -0.5, -0.7, -0.4, -0.85, 0.37, -0.4, 0, 0.23, -0.58, 0.07, 0.31, 0.14, -0.36), alpha49 = c(-0.93, -0.65, -0.83, -0.25, -0.68, -0.9, -0.82, -0.93, -0.64, -0.73, -0.55, -0.63, -0.23, -0.74, -0.94, -1.32), alpha56 = c(-1.23, -0.76, -0.36, -0.48, -1.03, -0.73, -0.75, -1.45, -0.8, -0.9, -0.97, -0.9, -0.58, -0.68, -1.03, -1.5), alpha63 = c(-0.62, -0.88, -0.7, -0.25, -0.55, -0.47, 0.07, -0.57, 0.41, -0.46, -0.48, 0.09, -1.01, -0.1, -1.5, -1.07), alpha70 = c(0.62, 0.69, 0.99, 0.79, 0.35, 0.2, 0.89, 0.15, 0.88, 0.85, 0.57, 0.54, -0.24, -0.38, -0.03, 0.35), alpha77 = c(1.3, 1.25, 1.08, 0.97, 1.24, 0.78, 0.78, 0.92, 0.75, 0.93, 0.88, 1.44, 0.23, 0.75, 1.25, 1.57), alpha84 = c(1.08, 0.62, 0.64, 0.53, 0.73, 0.28, 0.37, 0.81, 0.46, 0.96, 0.5, 0.42, 0.79, 0.73, 1.61, 1.1), alpha91 = c(0.27, -0.01, 0.18, 0.13, 0.2, -0.05, -0.19, 0.12, -0.27, 0.14, -0.01, 0.04, 0.33, 0.09, 0.84, 0.56), alpha98 = c(0.04, -0.36, -0.05, 0.07, 0, -0.11, -0.11, 0.15, -0.1, 0.28, 0.11, -0.4, 0.54, -0.27, 0.82, 0.18), alpha105 = c(-0.51, -0.04, 0.03, 0.14, 0.11, -0.13, -0.54, -0.39, -0.23, -0.17, -0.33, -0.47, -0.09, -0.22, -0.09, -0.32), alpha112 = c(-0.8, -0.55, -0.76, -0.56, -0.53, -0.87, -0.34, -0.6, -0.42, -0.14, -0.44, -0.12, -0.31, -0.62, -0.48, -0.38), alpha119 = c(-0.89, -0.55, -0.66, -0.41, -0.72, -0.9, -0.47, -1.2, -1.21, -0.68, -0.94, -0.61, -1.01, -0.8, -0.97, -1.04)), .Names = c("alpha0", "alpha7", "alpha14", "alpha21", "alpha28", "alpha35", "alpha42", "alpha49", "alpha56", "alpha63", "alpha70", "alpha77", "alpha84", "alpha91", "alpha98", "alpha105", "alpha112", "alpha119"), row.names = c("YBR088C", "YDL003W", "YDR097C", "YDR507C", "YER070W", "YER095W", "YER111C", "YGR189C", "YKL045W", "YLR183C", "YML027W", "YMR179W", "YNL300W", "YOR074C", "YPL163C", "YPL256C"), class = "data.frame")), .Names = "4")

Was it helpful?

Solution

You have a list of one element. This single element is a data.frame.

If you are after the rownames from this object, then index the list appropriately

rownames(object[[1]])
## [1] "YBR088C" "YDL003W" "YDR097C" "YDR507C" "YER070W" "YER095W" "YER111C" "YGR189C" "YKL045W" "YLR183C" "YML027W"
## [12] "YMR179W" "YNL300W" "YOR074C" "YPL163C" "YPL256C"

For a more general list of data.frames

# get rownames from all data.frames in a list
lapply(object, rownames)

If you want a data.frame, not a list containing a data.frame then you could simply assign the results from the first element to a separate element

object.df <- object[[1]]

If it is a list of data.frames, it probably is more idiomatically R to keep it in the list, and use lapply to work on each element.

Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top