【发布时间】:2018-12-13 16:46:42
【问题描述】:
我需要根据某个模板创建一个特定类型的表格。
这是我的数据:
df = structure(list(group = c(1L, 1L, 2L, 2L, 2L, 3L, 3L, 3L, 3L, 1L),
degree = structure(c(1L, 1L, 1L, 1L, 1L, 3L, 2L, 1L, 1L, 1L),
.Label = c("Mild severity", "Moderate severity", "Severe severity"),
class = "factor")),
.Names = c("group", "degree"),
class = "data.frame",
row.names = c(NA, -10L))
我进行了交叉表:
table(df$degree,df$group)
1 2 3
Mild severity 3 3 2
Moderate severity 0 0 1
Severe severity 0 0 1
但我需要在此模板中格式化结果: [![在此处输入图片描述][1]][1]
如何创建具有这种结构的表?
非常重要的编辑
完整的 dput() (42 obs.)
df = structure(list(Study.Subject.ID = structure(c(1L, 2L, 3L, 4L, 5L, 6L, 7L, 8L, 9L, 1L, 2L, 3L, 5L, 7L, 8L, 9L, 1L, 2L, 3L, 5L, 8L, 2L, 3L, 5L, 8L, 2L, 3L, 5L, 8L, 2L, 3L, 5L, 8L, 3L, 8L, 8L, 8L, 8L, 8L, 8L, 8L, 8L),
.Label = c("01-06-104", "01-09-108", "01-15-201", "01-16-202", "01-18-204", "01-27-301", "01-28-302", "01-33-305", "01-42-310"),
class = "factor"),
group = c(1L, 1L, 2L, 2L, 2L, 3L, 3L, 3L, 3L, 1L, 1L, 2L, 2L, 3L, 3L, 3L, 1L, 1L, 2L, 2L, 3L, 1L, 2L, 2L, 3L, 1L, 2L, 2L, 3L, 1L, 2L, 2L, 3L, 2L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L),
Degree.of.severity = structure(c(2L, 2L, 2L, 2L, 2L, 4L, 3L, 2L, 2L, 2L, 3L, 2L, 2L, 2L, 2L, 2L, 2L, 1L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 1L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 3L, 2L, 2L, 2L, 3L, 3L, 3L, 3L),
.Label = c("Life-threatening or disabling", "Mild severity", "Moderate severity", "Severe severity"),
class = "factor")),
.Names = c("Study.Subject.ID", "group", "Degree.of.severity"),
class = "data.frame",
row.names = c(NA, -42L))
主题有概念,概念有很多副作用。 一个人可能有多种副作用。 副作用可能是
severity
Moderate
Severe
我必须计算按组分开有多少人有这种或那种副作用, 该组有多少副作用?
I.E.在第一组中,我们有 9 个观察结果,但有两个独特的人。
01-06-104
01-09-108
但Mild severity 的总数为 7。
所以只有两个人有Mild severity (X) 的副作用,Mild severity 的总数是 7 (Y)。
患者总数为 42,因此要计算百分比,我们必须除以 42 (2/42)=4,7
这就是为什么我期望输出是:
degree group1 group2 group3
X (%)Y X (%)Y X (%) Y
Mild severity 2 (4,7%)7 3 (7,1%)13 3(7,1%) 12
Moderato 1 (2,3%)1 0(0,0%%)0 2(4,7%) 6
Severe severity 0(0,0%%)0 0(0,0%%)0 1(2,3) 1
【问题讨论】:
-
我不知道你在追求什么。您是否在问如何生成频率(而不是计数)表?或者如何用计数和频率来布置表格?或者如何将表格的输出存储在 Excel 中?我不明白
X和Y应该表示哪些列。你能根据样本数据(不是图像,而是真实数据)添加你的预期输出吗? -
@MauritsEvers 我编辑了帖子,请检查一下,你的答案是对的,但需要补充。
-
编辑的 dput 不足以给你想要的结果
-
@Onyambu 和 MauritsEvers 我用更多的 obs 更新了 dput。
-
编辑的
dput仍然没有帮助。所有Study.Subject.IDs都不一样,所以我不明白你的意思“所以不是三个男人,是一个人有3个副作用”。您需要退后一步,提出一个具有代表性且最小的样本数据集,并根据样本数据清晰地呈现您的预期输出。您的预期输出应包含带有实际数字的完整表格,而不仅仅是(部分)屏幕截图。只有这样才能提供帮助。