我有一个程序,该程序应该创建一个给定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