转换为数字后仍然不是 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))
它将只保留数字变量
Filter
和 is.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)
我在将数据转换为数字格式时遇到问题。
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))
它将只保留数字变量
Filter
和 is.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)