将数据帧导入到R中时,从.xlsx文件中标记特定数据

时间:2020-04-19 06:50:54

标签: r excel

excel file with marked data

参考上面链接的图片,我希望将此excel文件导入R,但是我希望红色的数据具有在R中以某种方式标记/标记的删除线-以便能够从它们创建向量。有没有一种方法,而不必先重新排列数据帧?

1 个答案:

答案 0 :(得分:0)

openxlsx 程序包可以访问工作簿样式。在许多其他信息中,它从工作表中读取以下内容:

  • 单元格格式
  • 字体名称
  • 字体大小
  • 字体颜色

但是,它没有“删除线效果”。但是您当然可以利用不同的字体颜色。

假设您有以下Excel文件,其中我已将两个单元格显示为具有删除线效果的红色单元格,并使其他单元格保持正常:

enter image description here

加载库并导入数据。

library(openxlsx)

wb <- loadWorkbook("filename.xlsx")
data <- read.xlsx(wb, colNames=FALSE)

样式包含在styleObjects对象中

wb$styleObjects
[[1]]
[[1]]$style
A custom cell style. 

 Cell formatting: GENERAL 
 Font name: Calibri 
 Font size: 11 
 Font colour: #FF0000 

[[1]]$sheet
[1] "Sheet1"

[[1]]$rows
[1] 3 4

[[1]]$cols
[1] 2 3

取决于应用于工作表中单元格的自定义样式的数量,列表中可能还有许多其他元素。每个自定义样式都将包含在此对象中。在这里,我只有一种与红色字体颜色(#FF0000)相对应的自定义样式。 $ rows和$ cols项仅给出具有此字体颜色的单元格的行和列索引。然后,您可以使用此信息提取所需的数据值。

red.rows <- wb$styleObjects[[1]]$rows
red.cols <- wb$styleObjects[[1]]$cols

data[cbind(red.rows, red.cols)]
#[1] 43 12