样本数据:
df <- data.frame("ID" = 1:6,
"Group1" = c("A", NA, "C", NA, "E", "C"),
"Group2" = c("E", "C", "C", NA, "E", "E"),
"Group3" = c("A", "A", NA, NA, "C", NA),
"Group4" = c(NA, "C", NA, "D", "C", NA),
"Group5" = c("A", "D", NA, NA, NA, NA))
Run Code Online (Sandbox Code Playgroud)
在每一行中,我想计算每个值的数量并将最频繁的值存储在一个新变量中New.Group。在平局的情况下,应选择行中的第一个值。应用于示例的逻辑:
的第 1 行New.Group取值,A因为它是该行中出现频率最高的值,忽略NAs。
第 2 行有价值,C因为它也是最常见的值。
第 3 行与第 2 行相同。
第 4 行具有值,D因为它是该行中唯一的值。
在第 5 行中,E和C计数为 …
我有以下 R 代码,我在其中转换数据,然后按特定列对其进行排序:
df2 <- df %>%
group_by(V2, news) %>%
tally() %>%
complete(news, fill = list(n = 0)) %>%
mutate(percentage = n / sum(n) * 100)
df22 <- df2[order(df2$news, -df2$percentage),]
Run Code Online (Sandbox Code Playgroud)
我想在 ggplot 中应用有序数据“df22”:
ggplot(df22, aes(x = V2, y = percentage, fill = factor(news, labels = c("Read","Otherwise")))) +
geom_bar(stat = "identity", position = "fill", width = .7) +
coord_flip() + guides(fill = guide_legend(title = "Online News")) +
scale_fill_grey(start = .1, end = .6) + xlab("Country") + ylab("Share")
Run Code Online (Sandbox Code Playgroud)
不幸的是,ggplot 仍然返回一个没有订单的情节:
有谁知道我的代码有什么问题?这与使用每个条形图的单个值对条形图进行排序不同,例如在 …