【发布时间】:2019-02-19 19:03:43
【问题描述】:
我是一个R新手,不知何故,这个问题似乎应该很容易解决。但不幸的是,经过大约三天的搜索和实验,我还是无法做到这一点。
我的数据格式接近宽格式:
color agegroup sex ses
red 2 Female A
blue 2 Female C
green 5 Male D
red 3 Female A
red 2 Male B
blue 1 Female B
...
我正在尝试创建可展示的表格,其中包含由sex、ses 和agegroup 组织的因变量(此处为color)的计数和百分比。我需要一个由ses 和sex 为每个agegroup 组织的表格,百分比旁边有计数,如下所示:
agegroup: 1
sex: Female Male
ses: A B C D A B C D
color:
red 2 1% 0 0% 8 4% 22 11% 16 8% 2 1% 8 4% 3 1.5%
blue 9 4.5% 6 3% 4 2% 2 1% 12 6% 32 16% 14 7% 6 3%
green 4 2% 12 6% 2 1% 8 4% 0 0% 22 11% 40 20% 0 0%
agegroup: 2
sex: Female Male
ses: A B C D A B C D
color:
red 2 1% 0 0% 8 4% 22 11% 16 8% 2 1% 8 4% 3 1.5%
blue 9 4.5% 6 3% 4 2% 2 1% 12 6% 32 16% 14 7% 6 3%
green 4 2% 12 6% 2 1% 8 4% 0 0% 22 11% 40 20% 0 0%
我一直在尝试使用从 datatables 和 expss 到 gmodels 的所有内容来执行此操作,但我就是不知道如何获得这样的输出。来自gmodels 的CrossTables 最接近,但距离仍然很远——(1)它把百分比放在 计数之下,(2)我不能让它嵌套在@ 下的sel 987654336@,(3)我不知道如何让它按代分解结果,以及(4)输出充满破折号、垂直管道和空格,这使得将其放入文字处理器或电子表格时出错- 容易发生手工事务。
编辑:我删除了我的第二个问题(关于线图),因为第一个问题的答案是完美的并且值得称赞,即使它没有触及第二个问题。我会单独问第二个问题,就像我从一开始就应该问的那样。
【问题讨论】:
-
janitor::tabyl可能值得一看。 -
我很欣赏这个建议。两个变量表工作正常(尽管它们不是我需要的)。但是,当我尝试添加第三个变量时,它会引发一个我无法解读的错误(
class表明我正在处理的对象是一个数据帧):类中的错误(dat[[1]]) 1 并且仅使用第一个元素 2:在 if (new_class %in% "factor") { : 条件长度 > 1 并且只使用第一个元素 -
我需要 4 路桌(即多个 3 路桌),而
tabyl似乎仅限于 3 路。它似乎无法从我的示例中生成“可展示的表格”。