我的全局环境中有一组空(0-row)和非空(>0-row)Tibbles,我只想选择相关的,即非空的,并将它们发送到write.xlsx命令。
看起来它应该是相当可行的任务,但我很难绕过它。
为简单起见,假设流程中的一些复杂代码会生成小标题 A、B 和 C
library(dplyr)
library(xlsx)
A<-tibble(a=1:3,aa=2:4,aaa=3:5)
B<-tibble(b=rep(1,3),bb=rep(2,3),bbb=rep(3,3))
B<-B %>% filter(b>4)
C<-tibble(c=3:1,bb=4:2,bbb=5:3)
A;B;C
# A tibble: 3 x 3
a aa aaa
<int> <int> <int>
1 1 2 3
2 2 3 4
3 3 4 5
# A tibble: 0 x 3
# ... with 3 variables: b <dbl>, bb <dbl>, bbb <dbl>
# A tibble: 3 x 3
c bb bbb
<int> <int> <int>
1 3 4 5
2 2 3 4
3 1 2 3
现在我只想写到 Excel Tibbles A 和 C,因为 B 是空的
所以我尝试了类似的东西
writexlsx<-function(x){
if("tbl" %in% class(x)){
if(nrow(x)>0) {
write.xlsx(x,filename=paste(x,".xlsx",sep=""))
}
}
}
lapply(writexlsx,ls())
但 ls() 只是名称列表,而不是实际对象
ls()
[1] "A" "B" "C" "writexlsx"
有任何想法吗?谢谢你