使用

时间:2019-03-16 18:27:35

标签: r loops

已经对R中的循环进行了一些研究,发现其中大多数只关注如何使用Change variable name in for loop using R之类的循环来更改文件或变量名,这可以从其他博客作者的文章中找到很好的解决方案。...< / p>

以下是我想对原始数据(s1P ... s9P)进行处理以通过根据(s1P ... s9P)中的基准列计算其平均值来获取新数据(s1Pm ... s9Pm)的方法。

可以逐行运行以下几行,但是,似乎应该有可能使用循环来使其整洁。

任何建议将不胜感激。周末愉快!

s1Pm = aggregate(s1P, list(s1P$Datum), mean)
s2Pm = aggregate(s2P, list(s2P$Datum), mean)
s3Pm = aggregate(s3P, list(s3P$Datum), mean)
s4Pm = aggregate(s4P, list(s4P$Datum), mean)
s5Pm = aggregate(s5P, list(s5P$Datum), mean)
s6Pm = aggregate(s6P, list(s6P$Datum), mean)
s7Pm = aggregate(s7P, list(s7P$Datum), mean)
s8Pm = aggregate(s8P, list(s8P$Datum), mean)
s9Pm = aggregate(s9P, list(s9P$Datum), mean)

1 个答案:

答案 0 :(得分:2)

我们可以用list加载mget中的所有对象,然后通过遍历aggregate

来应用list
outLst <- lapply(mget(paste0("s", 1:9, "P")), 
             function(x) aggregate(x, list(x$Datum), mean))
names(outLst) <- paste0(names(outLst), "m")

最好将输出保留在list中,而不是创建多个对象。但是,它也可以完成

list2env(outLst, envir = .GlobalEnv)

虽然不推荐