【发布时间】:2020-02-10 09:52:01
【问题描述】:
我想按年龄组计算特定行的频率,步骤是: 1.“pud”的数据框,当“icd3”的列满足以下条件时 2. 选择符合条件的行,统计频率。
代码如下:
u2<-which(pud$icd3>="A00"&pud$icd3<="A99"|
pud$icd3>="B00"&pud$icd3<="B94"|
pud$icd3=="B99")
u3<-which(pud$icd3>="A00"&pud$icd3<="A99"|
pud$icd3>="B00"&pud$icd3<="B49"|
pud$icd3>="B90"&pud$icd3<="B94"|
pud$icd3=="B99")
for (i in 2:3){co[i]=addmargins(table(pud[u[i],]$agegroups))}
但输出面板代表:
for (i in 2:3){co[i]=addmargins(table(pud[u[i],]$agegroups))}
[.data.frame(pud, u[i], ) 中的错误:找不到对象“u”
如何调整代码?
【问题讨论】:
-
欢迎来到 StackOverflow!请阅读有关how to ask a good question 的信息以及如何提供reproducible example。这将使其他人更容易帮助您。
-
u未找到,因为u尚未生成... -
我建议使用
case_when将您的条件编码到pud的新变量(列)中。然后group_by新列和tally。iris示例:iris_condition <- iris %>% mutate(category = case_when(Species == "setosa" & Petal.Length < 4.5 ~ "Small Setosa", Species == "versicolor" & Petal.Length < 4.5 ~ "Small versicolor", TRUE ~ "General category")) iris_condition %>% group_by(category) %>% tally()