我在 R 中匯入我的 excel 檔案時遇到問題。它將時間單元格轉換為另一種格式,我不知道該怎么做才能改變它。這是我的excel檔案:

這是我在 R 中獲得的:

這是我用來匯入檔案的代碼:
file.list <- list.files(pattern='*.xlsx',recursive = TRUE)
file.list <- setNames(file.list, file.list)
df.list <- lapply(file.list, read_xlsx, skip=20)
Actibrut <- bind_rows(df.list, .id = "id")
你知道有什么問題嗎?謝謝你。
uj5u.com熱心網友回復:
您的資料在 excel 中轉置。這是一個問題,因為 data.frames 是列主要的。使用這個答案我們可以解決這個問題
read.transposed.xlsx <- function(file, sheetIndex, as.is = TRUE) {
df <- read_xlsx(file, sheet = sheetIndex, col_names = FALSE)
dft <- as.data.frame(t(df[-1]), stringsAsFactors = FALSE)
names(dft) <- df[[1]]
rownames(dft) <- NULL
dft <- as.data.frame(lapply(dft, type.convert, as.is = as.is))
return(dft)
}
df <- bind_rows(lapply(file.list, \(file){
df <- read.transposed.xlsx(df)
df[['id']] <- file
}))
之后,您必須適當地轉換列,例如(注意來源可能取決于您的機器):
df$"Woke up" <- as.POSIXct(df$"Woke up", origin = '1899-12-31')
# If it comes in as "hh:mm:ss" use
library(lubridate)
df$"Woke up" <- hms(df$"Woke up")
uj5u.com熱心網友回復:
您需要做幾件事。首先,您的資料似乎已轉置。意思是,你的第一行看起來像變數名,列包含資料。在匯入 Rstudio 之前,您可以輕松地轉置資料。這將解決您在匯入資料時看到的 (..1, ..2) 變數名稱。
其次,將日期列匯入為strings.
命令:df.list <- lapply(file.list, read_xlsx, skip=20) 使用read_xlsx函式。我認為您需要明確指定列變數型別或將它們作為字串匯入。
然后您可以使用 stringr 包(或任何其他包)將字串轉換為日期變數。還可以考慮提供您使用過的代碼。
轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/396381.html
上一篇:打開另一個作業簿時,使用Application.Range參考的UDF失敗
下一篇:限制excelvba中的重復值
