For循环:R中的“要替换的项目数不是替换长度的倍数”

时间:2019-03-12 14:34:03

标签: r loops for-loop

我正在通过R for Data Science进行一些练习(第21.2.1章,问题1-2)。 https://r4ds.had.co.nz/iteration.html

问题是:确定nycflights13 :: flights中每一列的类型

这是代码。

library(nycflights13)

output_air <- vector("list", ncol(flights))
names(output_air) = names(flights)

for (i in names(output_air)) {
  output_air[i] = class(flights[[i]])
  print(output_air)
}
output_air #1 with output_air[i]

for (i in names(output_air)) {
  output_air[[i]] = class(flights[[i]])
  print(output_air)
}
output_air #2 with output_air[[i]]

因此,显然#2是正确的方法,而#1显示错误: “在output_air [i] <-class(flights [[i]])中:   替换的项目数不是替换长度的倍数”,但我不知道为什么。

这里的问题是,当我执行#1时,在$ time_hour下存储的类仅包含“ POSIXct”,而不是“ POSIXct”和“ POSIXt”。

$time_hour
[1] "POSIXct"

$time_hour
[1] "POSIXct" "POSIXt" 

0 个答案:

没有答案