我的数据和任务:
每行数据都有3列定义特征,2列包含“预测”和“观察”结果。我想对具有相同特征的预测值和观察值进行统计比较。
这是一个示例数据集:
metadata <- data.frame("sample" = c(rep("x",8),rep("y",8)),
"test" = rep(c("a","b"),8),
"strain" = rep(c("i","i","j","j"),4),
"predicted" = sample(1:10,16,replace=T),
"observed" = sample(1:10,16,replace=T))
以下是我尝试使用dplyr的示例:
metadata %>%
filter(sample == "x" & test == "a" & strain == "i") %>%
mutate(RMSE = rmse(predicted,observed))
哪个会产生:
sample test strain predicted observed RMSE
1 x a i 5 2 2.12132
2 x a i 6 6 2.12132
这是我在寻找的结果。但是我需要自动完成每个独特的样本,测试和应变组合。 (我的数据集比这个例子要多得多。)
我认为dplyr是环顾四周的最佳解决方案。但我愿意接受任何解决方案。预先谢谢你!
答案 0 :(得分:1)
您可以使用group_by
:
library(dplyr)
metadata %>%
group_by(sample, test, strain) %>%
mutate(RMSE = rmse(predicted, observed))