我正在使用子集从列值集中提取
我有一个包含几列的 DF,其中一列是状态。我需要获取状态的频率,但只是针对某些状态集。所以我有这个:
tmp <- subset(DF, DF$STATE %in% SOMESTATES)
a <- as.data.frame(table(tmp$STATE))
这几乎没问题了。 tmp 数据帧仅包含属于 SOMESTATES 集的记录,很好。
问题是 A.该表结果是整个 DF 的完整频率,而不仅仅是 tmp。另一个具有零值。
我的问题是 SOMESTATES 中的某些状态在 DF 中的出现次数为零,这阻止了我使用 droplevels。 droplevels 也会删除那些零值。这里也一样:
例如,如果我使用像这样的 droplevels,我会丢失我需要的某些状态的零值。
tmp <- subset(DF, DF$STATE %in% SOMESTATES)
tmp2 <- droplevels(tmp)
table(tmp2$STATE)
呈现所有州,而不仅仅是某些州的州
任何建议表示赞赏
尝试类似的方法:
tmp <- subset(DF, DF$STATE %in% SOMESTATES)
tmp$STATE <- factor(tmp$STATE, levels=SOMESTATES)
table(tmp$STATE)
因子函数会将其重新创建为一个水平匹配的新因子SOMESTATES
确切地。那些不在的州SOMESTATES
不会被包括在内,因为它们既不在数据中,也不在SOMESTATES
,但是那些计数为 0 的州SOMESTATES
仍将包含在因子中,因此计数为 0 的表。
另请注意,因子水平将按以下顺序排序SOMESTATES
因此该向量中的顺序将是使用它的表格或图中显示的顺序。一般来说,这是良性的或有用的。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)