我有以下簡單的(和工作:)功能,將以前存儲在2列(即Year和Month)中的日期信息變成某種'真實'日期格式。有沒有更好的方法來訪問這些變量而不是附加?
realDate <- function (table,year,period){
if (is.character(table) == TRUE)
{
dframe <- get(table)
}
else{
dframe <- table
}
attach(dframe)
dframe$Date <- as.Date(paste(year,"-",ifelse(period > 9,period,paste("0",period,sep="")),"-01",sep=""))
detach(dframe)
return(dframe$Date)
}
第一個參數是一個data.frame(或it's名稱)(我需要與含有多個data.frame名稱字符向量lapply使用)。第二個參數是存儲年份的df列,期間是存儲月份的那個列。
我只是在學習這個整體環境的東西,而且我確實認爲這種附加/分離方式不是正確的方法(即使它有效)。有沒有更好的方法將指定參數「Year」和「Period」作爲粘貼語句的一部分?
編輯:
將參數作爲列名傳遞的正確方法是什麼?請注意,Year和Period的姓名可能會從data.frame更改爲data.frame。如果我使用你建議的功能我得到:
head(realDate(mydf,"Jahr","Periode")) # German for year and period
Error in charToDate(x) :
character string is not in a standard unambiguous format
or
Error in paste(year, "-", ifelse(period > 9, period, paste("0", period, :
object 'Jahr' not found
HTH幫助。
一些示例數據會很有用。我不明白的是,你以「年」和「時期」作爲論點。這些與'dframe'有什麼關係 - 即爲什麼要附加?在'dframe' /'table'中有一個名爲「year2」和「period」的列,在這種情況下,您不需要將它們作爲參數傳遞,只需使用'with()'或'within()'。 – 2010-11-04 11:23:28
我之所以把年份和期限作爲參數,是因爲標籤在我的情況下發生了變化,我必須使用的數據庫在Year中使用不同的標籤,有時它是英文標籤,有時是瑞士/德國標籤。真的很有道理,但我必須處理它。我發佈的功能只是我必須做的幾項重新整理數據中的一項。 – 2010-11-04 11:31:52