r - 如何将“difftime”更改为数字
问题描述
我有一些看起来像这样的变量:
当我尝试绘制它时,我会得到错误代码discrete value supplied to continuous scale
。所以我必须将其更改为数字。我有多个这种类型的变量。这是我一次将它们全部转换为数字的一种方式吗?
解决方案
它只是一个建立在numeric
. 我们只需要as.numeric
并分配回同一列
df1$ADY <- as.numeric(df1$ADY)
如果有不止一列,只需检查 column class
,创建一个逻辑向量,使用它来选择列,遍历选定的列并转换为数字,然后分配回相同的列
i1 <- sapply(df1, class) == "difftime"
df1[i1] <- lapply(df1[i1], as.numeric)
举个例子
> df1 <- data.frame(ADY = difftime(Sys.time() + 5, Sys.time(), units = 'sec'))
> str(df1)
'data.frame': 1 obs. of 1 variable:
$ ADY: 'difftime' num 4.99964213371277
..- attr(*, "units")= chr "secs"
> df1$ADY <- as.numeric(df1$ADY)
> str(df1)
'data.frame': 1 obs. of 1 variable:
$ ADY: num 5
推荐阅读
- python - 尝试在我的问题中添加重新启动击键但遇到问题
- styled-components - 第一个伪类在样式组件中不起作用
- java - (严格)相对路径验证
- java - 特定 API 春季启动的基本身份验证 - 返回 200 ok 但意外正文
- node.js - SyntaxError: 意外的标记 ';' 在
在编译 ejs 时 - powershell - 在 windows 10 powershell 中使用 sqlplus 执行 sql 文件
- javascript - 使用 selenium 跟踪 html 元素的变化
- git - 当我使用 git add 时。命令它不断向我显示警告
- vue.js - 深度嵌套数组的 b 表项
- keystonejs - Keystone.js 6 访问被拒绝 adminMeta