R 中特定字符串在整个时间内出现的百分比
Percentage of occurrence of a specific string throughout time in R
我有这样一个数据库:
Individual Year ID
A 1 R
A 1 S
A 1 T
A 2 T
B 1 T
B 5 T
C 7 S
D 9 K
D 8 H
E 1 S
数据库中有数千人。
每个人与 none,每年一个或多个 ID 相关联(例如,个人 A 在第一年有 3 个不同的 ID,而个人 D 在第 10 年只有一个 ID,没有其他信息)
我正在尝试研究 ID“S”多年来的演变,并绘制了一个折线图,其中:
x 轴包含年份
y 轴百分比(#ID S/ # 所有个人的年度 ID 总数)
在这个例子中我的输出应该是:
Year Percentage of S
1 0,5
2 0
5 0
7 1
8 0
9 0
第一年的值是用 3(第一年的 ID S 总数)除以 6(第一年注册的 ID 总数)得到的。
谢谢
编辑
正如@akrun 所指出的,有一个更直接的方法:
library(dplyr)
df %>%
group_by(Year) %>%
summarise(perc_of_s = mean(ID == "S"))
你可以使用
library(dplyr)
df %>%
group_by(Year) %>%
summarise(perc_of_s = sum(ID == "S") / n())
这个returns
# A tibble: 6 x 2
Year perc_of_s
<dbl> <dbl>
1 1 0.4
2 2 0
3 5 0
4 7 1
5 8 0
6 9 0
第一年只有五个ID,其中两个是S
,所以百分比是0.4
。
我有这样一个数据库:
Individual Year ID
A 1 R
A 1 S
A 1 T
A 2 T
B 1 T
B 5 T
C 7 S
D 9 K
D 8 H
E 1 S
数据库中有数千人。
每个人与 none,每年一个或多个 ID 相关联(例如,个人 A 在第一年有 3 个不同的 ID,而个人 D 在第 10 年只有一个 ID,没有其他信息)
我正在尝试研究 ID“S”多年来的演变,并绘制了一个折线图,其中:
x 轴包含年份
y 轴百分比(#ID S/ # 所有个人的年度 ID 总数)
在这个例子中我的输出应该是:
Year Percentage of S
1 0,5
2 0
5 0
7 1
8 0
9 0
第一年的值是用 3(第一年的 ID S 总数)除以 6(第一年注册的 ID 总数)得到的。
谢谢
编辑
正如@akrun 所指出的,有一个更直接的方法:
library(dplyr)
df %>%
group_by(Year) %>%
summarise(perc_of_s = mean(ID == "S"))
你可以使用
library(dplyr)
df %>%
group_by(Year) %>%
summarise(perc_of_s = sum(ID == "S") / n())
这个returns
# A tibble: 6 x 2
Year perc_of_s
<dbl> <dbl>
1 1 0.4
2 2 0
3 5 0
4 7 1
5 8 0
6 9 0
第一年只有五个ID,其中两个是S
,所以百分比是0.4
。