如何获得';清洁';R中带RODBC的excel工作表选项卡名称列表?
我不熟悉R,甚至更不熟悉将其与Excel结合使用。我想在.xls文件中获得所有工作表名称(注释、权重、长度)的列表。您可以看到我在下面尝试的内容-问题是出于某种原因,输出的末尾有一个$dollar符号,有时还被单引号包围如何获得';清洁';R中带RODBC的excel工作表选项卡名称列表?,r,names,worksheet,rodbc,R,Names,Worksheet,Rodbc,我不熟悉R,甚至更不熟悉将其与Excel结合使用。我想在.xls文件中获得所有工作表名称(注释、权重、长度)的列表。您可以看到我在下面尝试的内容-问题是出于某种原因,输出的末尾有一个$dollar符号,有时还被单引号包围 FileToImport <- "C:\\folder\\filetoimport.xls" z <- odbcConnectExcel(FileToImport, readOnly = TRUE) sqlTables(z) TABLE_CAT TABLE_SC
FileToImport <- "C:\\folder\\filetoimport.xls"
z <- odbcConnectExcel(FileToImport, readOnly = TRUE)
sqlTables(z)
TABLE_CAT TABLE_SCHEM TABLE_NAME TABLE_TYPE REMARKS
1 C:\\folder\\filetoimport.xls <NA> Notes$ SYSTEM TABLE <NA>
2 C:\\folder\\filetoimport.xls <NA> 'Weights$' TABLE <NA>
3 C:\\folder\\filetoimport.xls <NA> 'Lengths$' TABLE <NA>
我可以尝试清理这些字符,但我真的不知道如何处理,因为引号格式不一致-一些工作簿是“系统表”,一些只是“表”。有人能解释一下这些工作表之间的区别,并告诉我如何重新创建“干净”的标签名吗 我对
RODBC
没有太多经验,但您是说clean的以下输出吗
如果你把它保存在一个向量中,比如说b
,你可以用z[i]
访问它们。如果您只需要某种类型,那么:
na.omit(ifelse(data.frame(sqlTables(z))$TABLE_TYPE=='SYSTEM TABLE', data.frame(sqlTables(z))$TABLE_NAME, NA))
[1] "Sheet1$" "Sheet2$" "Sheet3$"
无可否认,这是不合法的……多亏了上面正确的方向,我成功地使用正则表达式在所需的输出中获得了工作表名称(没有任何标点符号)
我对Excel/RODBC几乎没有经验,但工作簿是否与工作表相同?对于清理名称,您可以尝试使用正则表达式。是的,对不起,我一直都在谈论工作表。我想到了正则表达式,但我不会写它们!有谁能给我一个技巧,如何删除单引号和美元符号的名称,然后呢?我想出了如何做的reg-exp,以获得所需的输出,谢谢
gsub(“[[:punct:][]”,“”,sqlTables(z)[,“TABLE_NAME”]”)
[1]“Sheet1”“Sheet2”“Sheet3”
感谢您的努力,但我通过以上正则表达式的建议找到了我想要的东西。
data.frame(sqlTables(z))$TABLE_NAME
[1] "Sheet1$" "Sheet2$" "Sheet3$" "ZRDaten1"
na.omit(ifelse(data.frame(sqlTables(z))$TABLE_TYPE=='SYSTEM TABLE', data.frame(sqlTables(z))$TABLE_NAME, NA))
[1] "Sheet1$" "Sheet2$" "Sheet3$"
gsub("[[:punct:]]","",sqlTables(z)[,"TABLE_NAME"])
[1] "Sheet1" "Sheet2" "Sheet3"