我有一個程序,該程序應該創建一個給定csv活動和時間的動作圖的pdf文件。我需要遍歷多個活動列,每個主題一個。第一項活動列爲列3.下面是相關代碼:如何給循環中的公式值
pdf("All Actograms.pdf")
for(i in 3:(length(dat) - 1)) {
activity <- colnames(dat)[i]
# Plot the actogram
print(actogram(activity~datetime, dat=dat, col="black", main=colnames(dat)[i], strip.left.format="%m/%d", doublePlot = TRUE, scale=0.75))
}
dev.off()
當我打電話給我的actogram功能,我得到的錯誤「非數值參數二元運算符。」問題是公式「activity〜datetime」,因爲datetime是一個列名,活動也應該是這樣。如果我在循環中嘗試一下,使用活動列的名稱而不是包含名稱的變量,它可以正常工作。在調試時,我發現actogram函數正在接收字符串「activity」,而不是變量activity。我不太懂公式,但我想知道是否有任何方法可以完成我想要做的事情,這是通過許多列循環,每次調用實例圖函數時在「〜」之前更改列。我對R很新。
謝謝!
一個簡單的方法是添加'dat $ Yvar < - dat [,activity]',然後'Yvar〜datetime'作爲您的公式。 –
用'reconfulate(datetime,activity)'替換'activity〜datetime'。 – lmo