数据框删除行后仍保留已删行信息?R语言技术咨询
问题与解答
以下是复制PDF数据时误带入“As”后,使用df<-read.delim("clipboard", sep=" ", as.is=F)导入数据框遇到的问题及原因:
问题1:最后一行的Exam.2列为何未显示NA?
- 原因:误复制的“As”被识别为单独一行数据,但这行只有一个值,
read.delim默认会用空字符串填充缺失的列,而非NA。只有在导入时添加参数na.strings = "",才会把空字符串转换为NA。
问题2:删除最后一行后,df1的summary仍显示“As”,即使删除原数据框也一样,原因是什么?
- 原因:因为
Exam.2列被识别为因子类型(as.is=F是默认值,会自动把字符串转为因子),“As”已经被加入该列的因子水平列表。即使删除了对应行,因子水平不会自动移除,summary()会统计所有已存在的因子水平,哪怕该水平没有对应数据。
问题3:df1的Exam.2列摘要首行出现“ :0”的原因是什么?
- 原因:这个空的条目对应原数据最后一行中
Exam.2列的空字符串。由于没有设置na.strings = "",空字符串被当成了一个空的因子水平,summary()统计该水平的出现次数为0,因此显示“ :0”。
内容的提问来源于stack exchange,提问作者procerus
相关产品推荐
相关产品推荐

