转换为数字后仍然不是 R 中的数字格式

After converting to numeric still not in numeric format in R

我在将数据转换为数字格式时遇到问题。

str(DfFilter)

输出

'data.frame':   32 obs. of  5 variables:
 $ InstanceType      : chr  "  c1.xlarge" "  c1.xlarge" "  c1.xlarge" "  c1.xlarge" ...
 $ ProductDescription: chr  "  Linux/UNIX" "  Linux/UNIX" "  Linux/UNIX" "  Linux/UNIX" ...
 $ SpotPrice         : num  0.052 0.0739 0.0747 0.0751 0.0755 ...
 $ ymd_hms(Timestamp): POSIXct, format: "2021-05-16 06:26:40" "2021-05-16 00:58:55" "2021-05-16 06:46:50" ...
 $ Timestamp         : 'times' num  06:26:40 00:58:55 06:46:50 14:17:55 19:07:09 ...
  ..- attr(*, "format")= chr "h:m:s"

但是当我运行检查数值时

is.numeric(DfFilter)
[1] FALSE

为什么会这样。请帮助理解这个问题。提前致谢。

使用 purrr 包并基于评论:

DfModel <- DfFilter %>% 
  purrr::keep(.p = function(x) is.numeric(x))

它将只保留数字变量

Filteris.numeric 只能用于获取 numeric 列。

Filter(is.numeric, DfFilter)
#  a   c
#1 1 2.2

data.frame 中仅保留数值的另一种方法 sapply 中使用的 is.numeric 的结果可用于 [ 的子集:

DfFilter[sapply(DfFilter, is.numeric)]
#  a   c
#1 1 2.2

示例数据集:

DfFilter <- data.frame(a=1, b="b", c=2.2)