2014-10-03 21 views
0

這裏是我的變量,tv.table,印刷:如何訪問此表的列?

> tv.table 
sex.permuted 
     B G 
    d 87 94 
    dvm 49 52 
    l 249 277 
    lvm 197 193 
    n 143 139 

我想訪問tv.table的只是列。通常,我會使用命令tv.table $ B和tv.table $ G來執行此操作。但是,這是行不通的,我懷疑是因爲B和G上面的列標題爲sex.permuted。我該如何擺脫?

+3

如果你想幫助從互聯網上關於R的人,你必須學習如何最好地提供必要的信息來回答你的問題。打印在屏幕上時數據的顯示方式幾乎總是毫無用處。使用像'?str'和'?dput'這樣的工具來共享對象的確切結構。 – joran 2014-10-03 19:58:48

+1

'tv.table'是調用'table'的結果嗎?這在帖子中可能很重要。你可以做'tv.table [,'B']',或者取決於deparse等級的一些變化。 – 2014-10-03 20:00:13

+0

'tv.table'是一個列表嗎? – Barranka 2014-10-03 20:00:38

回答

2

這似乎是一個R表對象。它的維度有一個dimname,然後是列名和rownames。因爲他們是真正的矩陣,訪問方法是通過「[」功能:

> with(airquality, 
+ table(OzHi = Ozone > 80, Month, useNA = "ifany")) 
     Month 
OzHi  5 6 7 8 9 
    FALSE 25 9 20 19 27 
    TRUE 1 0 6 7 2 
    <NA> 5 21 5 5 1 
> attributes(with(airquality, 
+ table(OzHi = Ozone > 80, Month, useNA = "ifany"))) 
$dim 
[1] 3 5 

$dimnames 
$dimnames$OzHi 
[1] "FALSE" "TRUE" NA  

$dimnames$Month 
[1] "5" "6" "7" "8" "9" 


$class 
[1] "table" 

所以訪問第一和第二列由他們的角色的名字是指牛逼他們:

> airtbl <- with(airquality, 
+ table(OzHi = Ozone > 80, Month, useNA = "ifany")) 

> airtbl[ , c("5","6")] 
     Month 
OzHi  5 6 
    FALSE 25 9 
    TRUE 1 0 
    <NA> 5 21