我有一些看起来像这样的变量:
当我尝试绘制它时,我会收到错误代码discrete value supplied to continuous scale。所以我必须将其更改为数字。我有多个这种类型的变量。这是我将它们一次性全部转换为数字的方法吗?
它只是一个建立在numeric. 我们只需要as.numeric并分配回同一列
df1$ADY <- as.numeric(df1$ADY)
Run Code Online (Sandbox Code Playgroud)
如果有多于一列,只需检查该列class,创建一个逻辑向量,使用它来选择列,循环选定的列并转换为数字,然后分配回相同的列
i1 <- sapply(df1, class) == "difftime"
df1[i1] <- lapply(df1[i1], as.numeric)
Run Code Online (Sandbox Code Playgroud)
举个例子
> 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
Run Code Online (Sandbox Code Playgroud)