R typeof()和class()函数的区别是什么,它们在什么时候使用?
我编写了一个函数,我认为它决定了mtcars数据集每列中的类型数据R typeof()和class()函数的区别是什么,它们在什么时候使用?,r,class,R,Class,我编写了一个函数,我认为它决定了mtcars数据集每列中的类型数据 column_type <- vector("character", ncol(nycflights13::flights)) for(i in seq_along(nycflights13::flights)){ column_type[[i]] <- typeof(nycflights13::flights[[i]]) } column_type 但是在我正在使用的书中,解决方案是使用函数class()而不
column_type <- vector("character", ncol(nycflights13::flights))
for(i in seq_along(nycflights13::flights)){
column_type[[i]] <- typeof(nycflights13::flights[[i]])
}
column_type
但是在我正在使用的书中,解决方案是使用函数class()而不是typeof编写的。结果略有不同
output <- vector("list", ncol(nycflights13::flights))
names(output) <- names(nycflights13::flights)
for (i in names(nycflights13::flights)) {
output[[i]] <- class(nycflights13::flights[[i]])
}
output
#> $year
#> [1] "integer"
#>
#> $month
#> [1] "integer"
#>
#> $day
#> [1] "integer"
#>
#> $dep_time
#> [1] "integer"
#>
#> $sched_dep_time
#> [1] "integer"
#>
#> $dep_delay
#> [1] "numeric"
#>
#> $arr_time
#> [1] "integer"
#>
#> $sched_arr_time
#> [1] "integer"
#>
#> $arr_delay
#> [1] "numeric"
#>
#> $carrier
#> [1] "character"
#>
输出
#>美元月
#>[1]“整数”
#>
#>美元日
#>[1]“整数”
#>
#>$dep_时间
#>[1]“整数”
#>
#>$sched_dep_时间
#>[1]“整数”
#>
#>$dep_延迟
#>[1]“数字”
#>
#>$arr_时间
#>[1]“整数”
#>
#>$sched_arr_时间
#>[1]“整数”
#>
#>$arr_延迟
#>[1]“数字”
#>
#>$carrier
#>[1]“字符”
#>
我知道typeof()提供了基元向量的类型(因此它不包括数据帧、tibbles、factors、日期或日期时间)
class()为您提供了类,这是描述或指定对象的另一种方式?那么这是另一个属性
我的问题是,哪个解决方案更正确,为什么?什么时候使用类与向量类型(通过使用typeof()找到?Related:,“哪个解决方案更正确?”完全是主观的和上下文相关的。我不认为你会找到一个结论性的答案,KevinLee,因为它们的所有用途。如果你只关心double
和integer
之间的差异,那么typeof
是有效的(长度总是1!);如果您需要了解list
和data.frame
之间的区别,那么class
或继承(…)
就是您需要的。相关:,“哪个解决方案更正确?”完全是主观的和上下文相关的。我不认为你会找到一个结论性的答案,KevinLee,因为它们的所有用途。如果你只关心double
和integer
之间的差异,那么typeof
是有效的(长度总是1!);如果您需要了解list
和data.frame
之间的区别,那么class
或继承(…)
就是您所需要的。
output <- vector("list", ncol(nycflights13::flights))
names(output) <- names(nycflights13::flights)
for (i in names(nycflights13::flights)) {
output[[i]] <- class(nycflights13::flights[[i]])
}
output
#> $year
#> [1] "integer"
#>
#> $month
#> [1] "integer"
#>
#> $day
#> [1] "integer"
#>
#> $dep_time
#> [1] "integer"
#>
#> $sched_dep_time
#> [1] "integer"
#>
#> $dep_delay
#> [1] "numeric"
#>
#> $arr_time
#> [1] "integer"
#>
#> $sched_arr_time
#> [1] "integer"
#>
#> $arr_delay
#> [1] "numeric"
#>
#> $carrier
#> [1] "character"
#>