1

使用 write.table 或 write.csv 时,有没有办法让对象名称成为文件名字符串?

在下文中,a 和 b 是向量。我将对许多其他向量对进行类似的比较,并且不想像我一直在做的那样多次写出对象名称。

unique_downa<-a[!(a%in%b)]

write.csv(unique_downa,file="unique_downa.csv")

或者,如果有人对完成整个过程的更好方法提出建议,我很乐意听到。

4

2 回答 2

5

惯用的方法是使用deparse(substitute(blah))

例如

 write.csv.named <- function(x, ...){
      fname <- sprintf('%s.csv',deparse(substitute(x)))
      write.csv(x=x, file =  fname, ...)
 }
于 2013-06-04T04:41:17.973 回答
1

使用列表元素的名称而不是尝试使用对象名称可能是最简单的:

mycomparisons <-list (unique_downa = a[!(a%in%b)], unique_downb = b[!(b%in%a)])
mapply (write.csv, mycomparisons, paste (names (mycomparisons), ".csv", sep =""))

最好的办法可能是将你的向量放在一个列表中,然后在同一个循环中进行比较、命名和写出,但这取决于这些相似比较的相似程度......

于 2013-06-04T04:46:15.680 回答