【发布时间】:2012-04-11 07:53:05
【问题描述】:
我正在使用 ftable 创建一个平面列联表。但是,当我对列联表进行子集化时,R 会删除行名和列名。有没有办法对表进行子集化,以使行名和列名保留在子集表中?这是一个例子:
# Create fake data
Group1 = sample(LETTERS[1:3], 20, replace=TRUE)
Group2 = sample(letters[1:3], 20, replace=TRUE)
Year = sample(c("2010","2011","2012"), 20, replace=TRUE)
df1 = data.frame(Group1, Group2, Year)
# Create flat contingency table with column margin
table1 = ftable(addmargins(table(df1$Group1, df1$Group2, df1$Year), margin=3))
# Select rows with sum greater than 2
table2 = table1[table1[ ,4] > 2, ]
> table1
2010 2011 2012 Sum
A a 0 1 2 3
b 2 1 0 3
c 0 0 0 0
B a 0 1 1 2
b 2 0 0 2
c 1 0 1 2
C a 0 1 0 1
b 1 0 2 3
c 3 0 1 4
> table2
[,1] [,2] [,3] [,4]
[1,] 0 1 2 3
[2,] 2 1 0 3
[3,] 1 0 2 3
[4,] 3 0 1 4
请注意 R 如何将子集表转换为矩阵,去除列名和两个级别的行名。如何将 ftable 结构保留在子集表中?
【问题讨论】:
标签: r formatting subset