为什么str()会在数据清理后更改输出

为什么str()会在数据清理后更改输出,r,data-structures,R,Data Structures,当了解我放在df中的数据时,我使用str和dim。 在这里,str生成两个“部分”的输出,这几乎是相同的,正如您在下面看到的 在我完成一些清理并再次运行str()之后,它突然停止返回第二个“部分”。 我正在学习在R工作,这让我感到困惑 如果你有什么解释,我将不胜感激 祝你一切顺利,安德斯 > str(spain) Classes ‘spec_tbl_df’, ‘tbl_df’, ‘tbl’ and 'data.frame': 76 obs. of 8 variables: $ S

当了解我放在df中的数据时,我使用str和dim。 在这里,str生成两个“部分”的输出,这几乎是相同的,正如您在下面看到的

在我完成一些清理并再次运行str()之后,它突然停止返回第二个“部分”。 我正在学习在R工作,这让我感到困惑

如果你有什么解释,我将不胜感激

祝你一切顺利,安德斯

> str(spain)
Classes ‘spec_tbl_df’, ‘tbl_df’, ‘tbl’ and 'data.frame':    76 obs. of  8 variables:
 $ SNo            : num  552 619 688 758 828 ...
 $ ObservationDate: chr  "02/01/2020" "02/02/2020" "02/03/2020" "02/04/2020" ...
 $ Province/State : chr  NA NA NA NA ...
 $ Country/Region : chr  "Spain" "Spain" "Spain" "Spain" ...
 $ Last Update    : chr  "2/1/2020 2:13" "2020-02-01T23:43:02" "2020-02-01T23:43:02" "2020-02-01T23:43:02" ...
 $ Confirmed      : num  1 1 1 1 1 1 1 1 2 2 ...
 $ Deaths         : num  0 0 0 0 0 0 0 0 0 0 ...
 $ Recovered      : num  0 0 0 0 0 0 0 0 0 0 ...
 - attr(*, "spec")=
  .. cols(
  ..   SNo = col_double(),
  ..   ObservationDate = col_character(),
  ..   `Province/State` = col_character(),
  ..   `Country/Region` = col_character(),
  ..   `Last Update` = col_character(),
  ..   Confirmed = col_double(),
  ..   Deaths = col_double(),
  ..   Recovered = col_double()
  .. )
> dim(spain)
[1] 76  8
> spain <-  spain[,-3] #Fjerner kolonne 3
> str(spain)
Classes ‘tbl_df’, ‘tbl’ and 'data.frame':   76 obs. of  7 variables:
 $ SNo            : num  552 619 688 758 828 ...
 $ ObservationDate: chr  "02/01/2020" "02/02/2020" "02/03/2020" "02/04/2020" ...
 $ Country/Region : chr  "Spain" "Spain" "Spain" "Spain" ...
 $ Last Update    : chr  "2/1/2020 2:13" "2020-02-01T23:43:02" "2020-02-01T23:43:02" "2020-02-01T23:43:02" ...
 $ Confirmed      : num  1 1 1 1 1 1 1 1 2 2 ...
 $ Deaths         : num  0 0 0 0 0 0 0 0 0 0 ...
 $ Recovered      : num  0 0 0 0 0 0 0 0 0 0 ...
str(西班牙) 类“spec_tbl_df”、“tbl_df”、“tbl”和“data.frame”:76 obs。共有8个变量: $SNo:num 552 619 688 758 828。。。 $ObservationDate:chr“02/01/2020”“02/02/2020”“02/03/2020”“02/04/2020”。。。 $省/州:chr NA NA。。。 $国家/地区:chr“西班牙”“西班牙”“西班牙”。。。 $Last Update:chr“2/1/2020 2:13”“2020-02-01T23:43:02”“2020-02-01T23:43:02”“2020-02-01T23:43:02”。。。 $已确认:数字1 1 2。。。 $Deations:num 0 0 0 0 0 0。。。 $Recovered:num 0 0 0 0 0。。。 -属性(*,“规范”)= .. 科尔斯( ..SNo=col_double(), …ObservationDate=col_character(), ..`Province/State`=col_character(), ..`Country/Region`=列字符(), ..`Last Update`=col_character(), ..已确认=列双(), …死亡=col_double(), …已恢复=col_double() .. ) >迪姆(西班牙) [1] 76 8 >西班牙街(西班牙) 类“tbl_df”、“tbl”和“data.frame”:76 obs。共有7个变量: $SNo:num 552 619 688 758 828。。。 $ObservationDate:chr“02/01/2020”“02/02/2020”“02/03/2020”“02/04/2020”。。。 $国家/地区:chr“西班牙”“西班牙”“西班牙”。。。 $Last Update:chr“2/1/2020 2:13”“2020-02-01T23:43:02”“2020-02-01T23:43:02”“2020-02-01T23:43:02”。。。 $已确认:数字1 1 2。。。 $Deations:num 0 0 0 0 0 0。。。 $Recovered:num 0 0 0 0 0。。。
我不确定您是如何读取数据的,但这是使用子类
spec\u tbl\u df
对数据帧进行子集后的预期结果

简而言之,您的数据在第一次导入R时有一个子类
'spec\u tbl\u df'
。该子类有一个
spec
属性,该属性保存列的数据类型信息。调用
str()
时,它会显示类类型(
'tbl_df','tbl'和'data.frame'
..)和任何属性(
attr(*,'spec')
)。根据设计,在子集a
spec\u tbl\u df
之后,该属性将被删除。实际上,这不会影响您的数据帧。我认为这是加载数据的一个工件

您可以在这里阅读更多关于它的内容: