将数据帧中的一列保留为POSIXct,并将其他列转换为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

假设我们在结尾的Note中有可重复显示的数据帧。然后转换除第一列以外的所有列,如图所示。未使用任何程序包。

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")
library(dplyr)
df <- df %>% 
mutate(across(.cols = -Date, as.numeric))

最新更新