已关闭。此问题需要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,尽管其中有值。
1条答案
按热度按时间sxpgvts31#
你要做的第一件事就是毙了那个在一个单元格里放多个值的白痴。
但是,如果您确定单元格内分隔符始终为“;“您可以尝试使用
unlist(strsplit(one_cell, ";"))
来获取单元格中单独行的数组。然后根据需要提取字母和数字字符。但是一步一步来。首先,从你的XL文件中提取一些数据并检查它。它是什么类,它是一个列表,等等?就目前而言,我们无法看到你试图读取的实际数据文件包含什么。