r - 如何计算数据框中每行的分类变量(级别)的频率

标签 r dataframe categorical-data

我想总结数据框中每个 ID 的每个级别(类别)的频率。例如,如何为 ID 4003491503 分别生成值 1、2、0?

我尝试了tapplycount,但我不断收到错误。

    RespondentID   Case.A    Case.B    Case.C   Freq Red    Freq Blue   Freq Missing/NA
1     4003491503    Red      Blue      Blue      <b> 1            2          0 </b>
2     4003491653    Blue     Red       Red   
3     4003491982    Red      Blue      Red   
4     4003494862    Red      Red        NA   
15    4003494880   Blue     Blue      Blue    

最佳答案

我们可以使用“id.var”作为“RespondentID”来融化数据集,使用table获取频率,将输出转换为data.frame ,更改列名称并使用原始数据集进行cbind

library(reshape2)
df2 <- as.data.frame.matrix(table(melt(df1, id.var='RespondentID')[-2], useNA='ifany'))
colnames(df2) <- paste0('Freq', colnames(df2))
cbind(df1, df2)
#   RespondentID Case.A Case.B Case.C FreqBlue FreqRed FreqNA
#1    4003491503    Red   Blue   Blue        2       1      0
#2    4003491653   Blue    Red    Red        1       2      0
#3    4003491982    Red   Blue    Red        1       2      0
#4    4003494862    Red    Red   <NA>        0       2      1
#15   4003494880   Blue   Blue   Blue        3       0      0

关于r - 如何计算数据框中每行的分类变量(级别)的频率,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33503158/

相关文章:

r - 如何修复在 ShinyProxy 中获取 CSS 和 Javascript 文件时出现的 '404 (Not Found)' 错误

r - 在 R 中运行 apply 函数时有没有办法打印迭代次数

pandas - 标记每个 groupby 中的第一个元素

python - 是否可以在不先列出列表的情况下将 Series 附加到 DataFrame 行?

python - 将分类数据(多列)转换为二进制数据

r - 增量添加按 R 中 ID 分组的时间戳列的秒数

r - 按两个或多个列表的元素应用函数

r - 在数据框中选择非 NA 数据范围的简单有效方法

r - 如何使用 ggplot() 手动设置分类变量的颜色?

plot - Julia:网格上分类数据的可视化