多个条目单个单元格

时间:2016-12-18 14:20:28

标签: r crosstab

我有一个CSV文件,其结构如下:

Age    Sex   Ailments
73      F    Diabetes; Mobility; Hypertension
70      M    Hypertension; Memory problems; 
68      M    Hypertension; Diabetes

'疾病'列具有由';'。

分隔的多个元素

' Ailments'中的多个条目有两种选择。它们是一个平面列表,在这种情况下,所有条目具有相同的优先级;或者它们是优先级列表,其中我喜欢以下多个表格用于主要,次要,第三等条目。

 Ailment        Male      Female
 Diabetes       65.4%     71.45%
 Hypertension   75.23%    68.23%
 Memory         19.23%    24.34%

非常感谢任何帮助。

S1B。

1 个答案:

答案 0 :(得分:0)

我们可以通过

来做到这一点
library(splitstackshape)
dcast(cSplit(df1, "Ailments", ";", "long"), Ailments~Sex, value.var="Age",
      sum)[, (2:3) := lapply(.SD, function(x) round(100*x/sum(x), 2)), .SDcols = 2:3][]