R语言 如何从多个excel文件中提取单个单元格的多个值?[已关闭]

hmae6n7t  于 2023-02-27  发布在  其他
关注(0)|答案(1)|浏览(205)

已关闭。此问题需要details or clarity。当前不接受答案。
**想要改进此问题?**添加详细信息并通过editing this post阐明问题。

5天前关闭。
Improve this question
我有大量的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,尽管其中有值。

sxpgvts3

sxpgvts31#

你要做的第一件事就是毙了那个在一个单元格里放多个值的白痴。
但是,如果您确定单元格内分隔符始终为“;“您可以尝试使用unlist(strsplit(one_cell, ";"))来获取单元格中单独行的数组。然后根据需要提取字母和数字字符。
但是一步一步来。首先,从你的XL文件中提取一些数据并检查它。它是什么类,它是一个列表,等等?就目前而言,我们无法看到你试图读取的实际数据文件包含什么。

相关问题