如何为R中两个向量生成的交叉表添加变量名称?
在R中为向量交叉制表添加变量名称
你可以通过以下几种方式为两个向量生成的交叉表添加行、列对应的变量名称:
1. 使用table()的dnn参数
这是最直接的解决方案,dnn参数用于指定维度名称(dimension names),传入对应变量名的字符向量即可:
df <- data.frame(Cat=sample(c('Yes', 'No'), size=10, replace=TRUE), IsYellow=sample(c('Yes', 'No'), size=10, replace=TRUE)) # 带变量名的交叉制表 table(df$Cat, df$IsYellow, dnn = c("Cat", "IsYellow"))
生成的表格会和table(df)一样,清晰显示行(Cat)和列(IsYellow)的变量名称。
2. 手动修改表格的dimnames
如果已经生成了无名称的交叉表,可以事后为其维度赋值名称:
tab <- table(df$Cat, df$IsYellow) # 按行、列的顺序设置名称 dimnames(tab) <- list(Cat = levels(df$Cat), IsYellow = levels(df$IsYellow)) tab
注意这里的顺序要和table()的输入顺序一致:第一个列表元素对应行(df$Cat),第二个对应列(df$IsYellow)。
3. 使用xtabs()函数
用公式语法从数据框中直接生成交叉表,会自动保留变量名,写法更直观:
xtabs(~ Cat + IsYellow, data = df)
这种方式不需要单独提取向量,直接通过公式指定要交叉的变量,适合从数据框快速生成带名称的交叉表。
内容的提问来源于stack exchange,提问作者spindoctor
相关产品推荐
相关产品推荐

