创建函数以计算 R 中组内的出现次数
Create function to count occurrences within groups in R
我有一个名为 match_no
的患者组具有唯一 ID 的数据集,我想通过 运行 循环函数来计算两个不同年份有多少患者生病在大型数据集中
for (i in db$match_no){(with(db, sum(db$TBHist16 == 1 & db$match_no == i))}
这是我的尝试。我需要循环遍历每个匹配编号并计算出现了多少 TB。
谁能纠正我的公式。
此处示例
df1 <- data.frame(Match_no = c(1, 1,1,1,1,2,2,2,2,2, 3,3,3,3,3, 4,4,4,4,4, 5,5,5,5,5),
var1 = c(1,1,1,0,0,1,1,1,0,0,0,1,1,1,1,1,0,0,0,1,1,1,1,0,1))
我想统计每个匹配号中有多少个1值。
谢谢
一些想法:
所有Match_no
值的简单总结:
xtabs(~var1 + Match_no, data = df1)
# Match_no
# var1 1 2 3 4 5
# 0 2 2 1 3 1
# 1 3 3 4 2 4
与 1 相同,但有一个子集:
xtabs(~ Match_no, data = subset(df1, var1 == 1))
# Match_no
# 1 2 3 4 5
# 3 3 4 2 4
一帧结果:
aggregate(var1 ~ Match_no, data = subset(df1, var1 == 1), FUN = length)
# Match_no var1
# 1 1 3
# 2 2 3
# 3 3 4
# 4 4 2
# 5 5 4
在基础 R
中,您可以使用 aggregate
和 sum
:
aggregate(var1 ~ Match_no, data = df1, FUN = sum)
Match_no var1
1 1 3
2 2 3
3 3 4
4 4 2
5 5 4
我有一个名为 match_no
的患者组具有唯一 ID 的数据集,我想通过 运行 循环函数来计算两个不同年份有多少患者生病在大型数据集中
for (i in db$match_no){(with(db, sum(db$TBHist16 == 1 & db$match_no == i))}
这是我的尝试。我需要循环遍历每个匹配编号并计算出现了多少 TB。
谁能纠正我的公式。
此处示例
df1 <- data.frame(Match_no = c(1, 1,1,1,1,2,2,2,2,2, 3,3,3,3,3, 4,4,4,4,4, 5,5,5,5,5),
var1 = c(1,1,1,0,0,1,1,1,0,0,0,1,1,1,1,1,0,0,0,1,1,1,1,0,1))
我想统计每个匹配号中有多少个1值。
谢谢
一些想法:
所有
Match_no
值的简单总结:xtabs(~var1 + Match_no, data = df1) # Match_no # var1 1 2 3 4 5 # 0 2 2 1 3 1 # 1 3 3 4 2 4
与 1 相同,但有一个子集:
xtabs(~ Match_no, data = subset(df1, var1 == 1)) # Match_no # 1 2 3 4 5 # 3 3 4 2 4
一帧结果:
aggregate(var1 ~ Match_no, data = subset(df1, var1 == 1), FUN = length) # Match_no var1 # 1 1 3 # 2 2 3 # 3 3 4 # 4 4 2 # 5 5 4
在基础 R
中,您可以使用 aggregate
和 sum
:
aggregate(var1 ~ Match_no, data = df1, FUN = sum)
Match_no var1
1 1 3
2 2 3
3 3 4
4 4 2
5 5 4