将数据框中的一列保留为 POSIXct 并将其他列转换为 r 中的数字

Retain one column in a data frame as POSIXct and convert others to numeric in r

离开日期列我想将数据框中的其余列从 chr 转换为数字。我怎么能做到这一点?数据框中有很多列,下面只是摘录。谢谢

                 Date RECORD Battery_V Data_logger_Temp_C VWC_CS7
  2021-06-25 12:34:00      0     12.47              14.14   0.127
library(dplyr)
df <- df %>% 
  mutate(across(.cols = -Date, as.numeric))

假设我们在最后的注释中重复显示了数据框。然后如图所示转换除第一列之外的所有列。没有使用包。

DF2 <- replace(DF, -1, lapply(DF[-1], as.numeric))

DF2 <- DF
DF2[-1] <- lapply(DF2[-1], as.numeric)

或者我们可以使用以下方法转换所有字符列:

ok <- sapply(DF, is.character)
DF2 <- replace(DF, ok, lapply(DF[ok], as.numeric))

DF2 <- DF
ok <- sapply(DF2, is.character)
DF2[ok] <- lapply(DF2[ok], as.numeric)

备注

Lines <- "                 Date RECORD Battery_V Data_logger_Temp_C VWC_CS7
  2021-06-25T12:34:00      0     12.47              14.14   0.127"
DF <- read.table(text = Lines, header = TRUE, colClasses = "character",
  strip.white = TRUE)
DF$Date <- as.POSIXct(DF$Date, format = "%Y-%m-%dT%H:%M:%S")