数据框中已删除行的“内存”保留在新数据框中?

问题描述 投票:0回答:0

我不太确定这里发生了什么,所以标题可能不是最准确的,版主,如果您认为需要,请随时修改它以使其更具描述性。我有几个关于各种基本输出的问题,我希望这是允许的。

无论如何,我从 pdf 复制了这个数据框,以便通过一个例子:

“考试 1”“考试 2”测验

2.0 和 4.0

3.3 一 3.7

4.0 b 4.0

2.3 天 3.3

2.3 和 3.3

3.3 和 4.0

作为

我不小心把“As”抄了下来,这是pdf中dataframe后面的句子的一部分。我使用以下代码导入它:

df<-read.delim("clipboard", sep=" ", as.is=F)
df

  Exam.1 Exam.2 Quiz
1    2.0      a  4.0
2    3.3      a  3.7
3    4.0      b  4.0
4    2.3      d  3.3
5    2.3      a  3.3
6    3.3      e  4.0
7     As          NA

问题1.)这里我不明白,为什么Exam.2没有列出NA?

在这一点上,我意识到我的错误,为了删除最后一行,我生成了以下代码,这里是事情变得奇怪的地方:

df1<-df[1:((nrow(df))-1),]
summary(df1)

Exam.1  Exam.2      Quiz      
 2.0:1    :0    Min.   :3.300  
 2.3:2   a:3    1st Qu.:3.400  
 3.3:2   b:1    Median :3.850  
 4.0:1   d:1    Mean   :3.717  
 As :0   e:1    3rd Qu.:4.000  
                Max.   :4.000 

问题2)我明白为什么df2$Exam.1列是因子,因为它继承了df$Exam.1的类,我不明白的是为什么df1的摘要仍然将“As”列为存在的东西?关于因子水平的信息是否编码到数据框的“父级”中,而 R 只是从原始 df 中提取它?另外,我在哪里可以阅读更多相关信息?

问题 3) 最后,为什么 df1$Exam.2 的摘要输出的第一行列出了“:0”。我最好的猜测是,因子不能有 NA 值,所以它只是留空?而不是将空白作为数据框的一部分?

编辑: 即使在我使用 rm(df) 所以有关父 df 的所有信息都应该从环境中消失后,我仍然在 df1

的摘要中列出“As”
r dataframe factors
© www.soinside.com 2019 - 2024. All rights reserved.