我有一张excel表 .xlsx ,里面有一些评论的单元格。在R中导入后,R是否可以通过哪种方式识别评论的单元格?
因为我必须只对注释的单元格使用if else条件。
答案 0 :(得分:6)
使用 openxlsx ,我们可以将工作簿读作数据框对象,只提取数据:
library(openxlsx)
# read the data
df1 <- read.xlsx("test.xlsx")
df1
# 1 no
# 1 2 yes
# 2 3 no
# 3 5 no
# 4 10 yes
如果我们需要提取注释,我们需要读作工作簿对象:
# read as workbook object
wb <- loadWorkbook("test.xlsx")
检查对象的结构以查看单元格引用的存储位置:
str(wb$comments)
# List of 3
# $ :List of 2
# ..$ :List of 5
# .. ..$ ref : chr "B2"
# ...
# ... etc
然后使用注释子集,遍历工作表和子集单元格引用:
lapply(wb$comments, function(sheet)
sapply(sheet, "[[", "ref"))
# [[1]]
# [1] "B2" "B5"
#
# [[2]]
# list()
#
# [[3]]
# list()
这意味着有3张纸,第1张纸在B2和B5有2条评论,其他2张是空白的。