我有一个使用 R 中的 CSV 库加载的数据框,例如
mySheet <- read.csv("Table.csv", sep=";")
我现在可以打印该 mySheet 对象的摘要
summary(mySheet)
它将向我显示每一列的摘要,例如,名为 Diagnose 的列具有唯一值 RCM、UCM、HCM,并且它显示每个值出现的次数。
我现在按诊断进行过滤,例如
subSheet <- mySheet[mySheet$Diagnose=='UCM',]
这似乎有效,当我只需在控制台中输入 subSheet 时,它只会打印值与“UCM”匹配的行
但是,如果我在该子表上进行摘要,例如
summary(subSheet)
它仍然“知道”其他两种可能性 RCM 和 HCM 并打印那些值为 0 的值。但是,我预计新创建的对象不会知道我最初加载的原始 mySheet 的可能值。
有没有办法在过滤后去掉那些其他可能的值?我也尝试了子集,但这个似乎只是交互模式中“[”的某种快捷方式...我也尝试了 DROP=TRUE 作为选项,但这并没有改变游戏。
完全绞尽脑汁:D 非常感谢任何帮助!
你在这里处理的是factors从读取csv文件。你可以得到subSheet
忘记缺失的因素
subSheet$Diagnose <- droplevels(subSheet$Diagnose)
or
subSheet$Diagnose <- subSheet$Diagnose[ , drop=TRUE]
就在你做之前summary(subSheet)
.
就我个人而言,我不喜欢因子,因为它们给我带来了太多问题,而且我只在真正需要时才将字符串转换为因子。所以我会从类似的事情开始
mySheet <- read.csv("Table.csv", sep=";", stringsAsFactors=FALSE)
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)