在R中,我想找到一種方法來使用下面的數學公式和.csv文件來編寫for循環。如何寫一個for循環來計算在R中使用數學方程?
下面是一個顯示.csv文件中兩行的示例。
6/27/2010 8:45 131.04
6/27/2010 9:00 111.11
第二列是在以下等式中x
。
我需要幫助寫上面的方程和一個for循環,.csv文件隨負載變化寫道。
在R中,我想找到一種方法來使用下面的數學公式和.csv文件來編寫for循環。如何寫一個for循環來計算在R中使用數學方程?
下面是一個顯示.csv文件中兩行的示例。
6/27/2010 8:45 131.04
6/27/2010 9:00 111.11
第二列是在以下等式中x
。
我需要幫助寫上面的方程和一個for循環,.csv文件隨負載變化寫道。
要獲得L_var一定組數字,我相信這會工作:
l_var = sd(x)/mean(x)
其中x
是號碼的載體。接下來我們把它包在一個函數:
l_var = function(x) sd(x)/mean(x)
outcome = l_var(input)
其中input
是數字向量,並outcome
數學公式的結果。
如果您的時間戳列的類別爲POSIXlt
,則可以使用strftime
創建一個因子列,您可以在其中對數據進行分類。有關此步驟的更多詳細信息,請參閱此SO answer。接下來,您可以使用ddply
從plyr
包(比如一天),以獲得l_var
每個類別:
result = ddply(df, .(cat), summarise, l_var = l_var(value))
其中df
是輸入data.frame其中cat
是時間範疇,和價值在x
值的上面的等式。爲了把結果寫入文件,您可以使用write.csv
:
write.csv(result, file = "out.csv")
我覺得這個佔地約所有的步驟...
您可能需要將'na.rm = TRUE'添加到sd()和mean()或其他一些處理缺失值的方法。 – 2012-08-10 19:09:11
非常感謝! – 2012-08-10 19:11:29
我有點擔心在這個解決方案的15分鐘內沒有考慮。我原以爲會需要一個'動物園:rollapply'方法。 – 2012-08-10 19:59:12
您可以讀取CSV爲R,像'X = read.csv(」 pathtofile「)'。如果是這樣,你可以添加dput(head(X))到你的問題嗎? – Seth 2012-08-10 18:31:05
是的,我有代碼,但確實想發佈,因爲我知道它是完全錯誤的。 dput(head(X))做什麼?我搜索,它是一個debian軟件包上傳工具?我很困惑。 – 2012-08-10 20:16:23
'dput'是一個R函數,和'head'一樣。使用'?function_name'獲取該函數的文檔,例如'?head'。 – 2012-08-10 21:07:32