2017-06-14 48 views
0

簡單的問題,但如何將數據框的名稱保存爲excel文件名(如果它在函數中)?如果在函數中保存帶有數據框名稱的excel文件

export_origin <- function(df){ 
df1 <- unite(df, variable, c(Reaction.Type, Trial, Actual.Total.Seconds)) 
df2<- dcast(df1, X.nm.~variable, value.var = "X.A.") 
fname= paste(df, "xls", sep = ".") 
write.xlsx2(df2, file = fname, col.names = TRUE)} 

我想fname = df.xls與任何df名稱是我輸入,但它將其保存爲數據框中的觀察名稱作爲名稱。

+3

如果你想獲得的名稱作爲一個字符串使用'替代(DF)' – akrun

+1

?我猜'unite'來自'dplyr','dcast'來自'reshape2'。但是'write.xlsx2'從哪裏來?我想你可能想添加更多細節。 – www

回答

2

我們什麼是您使用其它軟件包可以使用deparse(substitute

export_origin <- function(df){ 
    v1 <- deparse(substitute(df)) 
    df1 <- unite(df, variable, c(Reaction.Type, Trial, Actual.Total.Seconds)) 
    df2<- dcast(df1, X.nm.~variable, value.var = "X.A.") 
    fname= paste(v1, "xls", sep = ".") 
    write.xlsx2(df2, file = fname, col.names = TRUE)} 
    } 

爲了使這種重複性,

export_origin <- function(df){ 
    v1 <- deparse(substitute(df)) 
    paste(v1, "xls", sep=".") 
} 

export_origin(df) 
#[1] "df.xls" 
+1

這是我從來沒有遇到過的輝煌答案!謝謝! – amrrs

相關問題