当总值隐藏在行中时计算数据框列表的百分比列
Calculate Percentage Column for List of Dataframes When Total Value is Hidden Within the Rows
library(tidyverse)
我觉得有一个简单的解决方案,但我被卡住了。下面的代码创建了一个包含两个数据帧的简单列表(为了简化示例,它们是相同的,但实际数据具有不同的值)
Loc<-c("Montreal","Toronto","Vancouver","Quebec","Ottawa","Hamilton","Total")
Count<-c("2344","2322","122","45","4544","44","9421")
Data<-data_frame(Loc,Count)
Data2<-data_frame(Loc,Count)
Data3<-list(Data,Data2)
每个数据框在 "Loc" 列中有 "Total",相应的总计为 "Count" 列。我想通过将 "Count" 列中的每个值除以总数来计算每个数据帧的百分比,总数是 "Count" 列中的最后一个数字。
我希望将百分比添加为每个数据框的新列。
对于这个例子,总数是列中的最后一个数字,但实际上,它可能在列中的任何位置混合,可以通过[=26=中对应的"Total"值找到] 柱子。
我想使用 purrr 和 Tidyverse:
下面是代码示例,但我坚持使用百分比...
Data3%>%map(~mutate(.x,paste0(round(100* (MISSING PERCENTAGE),2),"%"))
此解决方案仅使用 base-R:
for (i in seq_along(Data3)) {
Data3[[i]]$Count <- as.numeric(Data3[[i]]$Count)
n <- nrow(Data3[[i]])
Data3[[i]]$perc <- Data3[[i]]$Count / Data3[[i]]$Count[n]
}
> Data3
[[1]]
# A tibble: 7 x 3
Loc Count perc
<chr> <dbl> <dbl>
1 Montreal 2344 0.248805859
2 Toronto 2322 0.246470651
3 Vancouver 122 0.012949793
4 Quebec 45 0.004776563
5 Ottawa 4544 0.482326717
6 Hamilton 44 0.004670417
7 Total 9421 1.000000000
[[2]]
# A tibble: 7 x 3
Loc Count perc
<chr> <dbl> <dbl>
1 Montreal 2344 0.248805859
2 Toronto 2322 0.246470651
3 Vancouver 122 0.012949793
4 Quebec 45 0.004776563
5 Ottawa 4544 0.482326717
6 Hamilton 44 0.004670417
7 Total 9421 1.000000000
library(tidyverse)
我觉得有一个简单的解决方案,但我被卡住了。下面的代码创建了一个包含两个数据帧的简单列表(为了简化示例,它们是相同的,但实际数据具有不同的值)
Loc<-c("Montreal","Toronto","Vancouver","Quebec","Ottawa","Hamilton","Total")
Count<-c("2344","2322","122","45","4544","44","9421")
Data<-data_frame(Loc,Count)
Data2<-data_frame(Loc,Count)
Data3<-list(Data,Data2)
每个数据框在 "Loc" 列中有 "Total",相应的总计为 "Count" 列。我想通过将 "Count" 列中的每个值除以总数来计算每个数据帧的百分比,总数是 "Count" 列中的最后一个数字。
我希望将百分比添加为每个数据框的新列。
对于这个例子,总数是列中的最后一个数字,但实际上,它可能在列中的任何位置混合,可以通过[=26=中对应的"Total"值找到] 柱子。
我想使用 purrr 和 Tidyverse:
下面是代码示例,但我坚持使用百分比...
Data3%>%map(~mutate(.x,paste0(round(100* (MISSING PERCENTAGE),2),"%"))
此解决方案仅使用 base-R:
for (i in seq_along(Data3)) {
Data3[[i]]$Count <- as.numeric(Data3[[i]]$Count)
n <- nrow(Data3[[i]])
Data3[[i]]$perc <- Data3[[i]]$Count / Data3[[i]]$Count[n]
}
> Data3
[[1]]
# A tibble: 7 x 3
Loc Count perc
<chr> <dbl> <dbl>
1 Montreal 2344 0.248805859
2 Toronto 2322 0.246470651
3 Vancouver 122 0.012949793
4 Quebec 45 0.004776563
5 Ottawa 4544 0.482326717
6 Hamilton 44 0.004670417
7 Total 9421 1.000000000
[[2]]
# A tibble: 7 x 3
Loc Count perc
<chr> <dbl> <dbl>
1 Montreal 2344 0.248805859
2 Toronto 2322 0.246470651
3 Vancouver 122 0.012949793
4 Quebec 45 0.004776563
5 Ottawa 4544 0.482326717
6 Hamilton 44 0.004670417
7 Total 9421 1.000000000