我有一个包含 3 列的 data.frame,每一列都可以被认为是一个因素。我想计算 data.frame 上的一些统计数据并将其存储在一个新框架中。更具体地说,我有以下字段:
obs, len, src
A 10 X
B 10 Y
我想计算每个源在每个长度上的细分(即来自源 X 的长度为 10 的观测值的百分比是“A”、“B”等)
一个明显的方法是使用两个 for 循环来迭代长度和源,然后使用 nrow() 和 count() 来获取我需要计算的值,如下所示:
relevant_subset <- data[data$src==source & data$len==length,]
breakdown_info <- count(relevant_subset)
breakdown_info$frac <- breakdown_info$freq / nrow(relevant_subset)
有没有办法避免使用双 for 循环并使用更矢量化的方法?有没有一种聪明的方法来预先分配新的帧来保存每个长度和源的修改后的故障信息?