我有一个数据集,如下所示:
data <- tribble(
~top_1, ~top_2, ~top_3,
"A", "B", "C",
"B", "B", "B",
"C", "B", "C",
"A", "B", "B",
"A", "A", "A",
"B", "B", "A",
"C", "A", "C",
"A", "A", "A",
"A", "C", "B",
"B", "B", "C",
)
Run Code Online (Sandbox Code Playgroud)
现在,我想为每一列计数不同的行,并有一个新的数据集,如下所示:
new_data <- tribble(
~product, ~top_1, ~top_2, ~top_3,
"A", .50, .30, .30,
"B", .30, .60, .30,
"C", .20, .10, .40,
)
Run Code Online (Sandbox Code Playgroud)
您能帮我创建此数据吗?
lvl = unique(unlist(data))
sapply(data, function(x) prop.table(table(factor(x, lvl))))
# top_1 top_2 top_3
#A 0.5 0.3 0.3
#B 0.3 0.6 0.3
#C 0.2 0.1 0.4
Run Code Online (Sandbox Code Playgroud)