我有很多 excel 文件。它们都是相同的格式,但观察结果不同。我正在尝试从一些特定的单元格中提取值。 有时没有,有时有一个,有时有多个;作为分隔符。 具体部分看起来像这样。
A列 |
---|
时间 |
价值 1 |
价值2 |
我尝试了什么:
library(tidyverse)
library(readxl)
# this produces a list with all the filenames in the folder and subfolders
excel_files <- list.files(pattern = "*.xlsx", full.names = TRUE, recursive = TRUE)
# Define a function to extract values from a cell
extract_cell_values <- function(file, cell_name, delimiter) {
data <- read_xlsx(file, col_names = FALSE)
cell_text <- data[[cell_name]][1]
if (is.na(cell_text) || is.null(cell_text) || cell_text == "") {
values <- NA
} else {
values <- str_split(cell_text, delimiter)[1, ]
}
}
# Define variables for cell name and delimiter
cell_name <- "K3"
delimiter <- ";"
# Use purrr::map to apply the extract_cell_values function to each file in the list
values_list <- map(excel_files, ~ extract_cell_values(file = .x, cell_name = cell_name, delimiter = delimiter))
我从第一个值单元格开始,使用 stringr。 我期待一个包含 2 列的列表。 文件名和值
但是尽管那里有值,但这些值都是 NA。
您要做的第一件事就是射杀将多个值放入单个单元格的白痴。
但是,如果您确定单元格内分隔符始终为“;”您可以尝试使用
unlist(strsplit(one_cell, ";"))
来获取单元格中单独行的数组。然后根据需要提取字母与数字字符。
但一步一步来。首先,只需从您的 XL 文件中提取一些数据并检查它。它是什么类,它是列表等吗?就目前而言,我们看不到您正在尝试读取的实际数据文件包含什么。