2013-06-04 49 views
1

當使用write.table或write.csv時,有沒有辦法讓對象名變成文件名字符串?自動使用對象名稱作爲文件名與write.table或write.csv

在下面,a和b是向量。我將對許多其他的向量對進行類似的比較,並且不會像我一直在做的那樣多次寫出對象名稱。

unique_downa < -a [!(在%B A%)]

write.csv(unique_downa,文件= 「unique_downa.csv」)

或者,如果任何人有一個建議爲了更好地完成整個過程,我很樂意聽到它。

回答

1

這可能是最容易使用的一個列表,而不是試圖用對象名稱的元素的名稱:

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

要做的最好的事情可能是將你的向量放在一個列表中,然後在同一個循環內進行比較,命名和寫出,但這取決於s類似這些類似的比較是...

3

的慣用做法是用deparse(substitute(blah))

write.csv.named <- function(x, ...){ 
     fname <- sprintf('%s.csv',deparse(substitute(x))) 
     write.csv(x=x, file = fname, ...) 
} 
+0

R反射=黑魔法。希望它不那麼模糊。 –