我有一个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。
答案 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][]