我正在使用包含3列的数据框($meta = $xml.SelectSingleNode("//catalogue/produits/produit[@id='$($_.id)']/metas/meta[@code='$meta_code']")
):dt
,Time
,Temp
,例如
Species
第三栏有五种。
我想应用一个线性模型( Temp Time Species
1 10 241 Species-X
2 11 241 Species-X
3 12 241 Species-X
4 13 241 Species-Y
5 14 241 Species-Y
6 15 240 Species-Z
... ... ... ...
41 50 178 Species-Z
)和lm
作为我的自变量,Temp
作为因变量。
因此,我想仅针对物种X或Y测试它。此外,我想以给定的Time
间隔测试我的一个物种(比方说,20 - 29度C)。
我试过了:
Temp
答案 0 :(得分:2)
基础R中的by()
函数提供了一个解决方案:
by(td, td$Species, function(df) lm(df[,"Temp"] ~ df[,"Time"]))
如果您需要针对不同子集的不同规则,您可能需要逐组进行。例如,要为20-29(含)的临时值执行Species-Y,可以运行:
lm(Temp ~ Time, data = td[td$Species == "Species-Y" & td$Temp >= 20 & td$Temp <= 29, ])