【发布时间】:2019-09-21 03:56:34
【问题描述】:
在此之前我一直在使用“For 循环”。但变量通常是 k ,指的是行号。
例子:
for (k in 1:n) {
expression
}
我的问题是,变量是否可能是某个列? 示例:
for ("column no" in 1:n) {
expression
}
我经历了几次尝试和错误,现在有点卡住了。这是我的数据:
date mold no
22-May 1.35436 1
23-May 0.88592 1
24-May 0.81316 1
25-May 0.80856 1
26-May 0.84646 1
27-May 0.81762 1
28-May 0.79828 1
03-Jan 1.09158 2
04-Jan 0.86661 2
05-Jan 0.81908 2
06-Jan 0.7555 2
07-Jan 0.66577 2
08-Jan 0.66706 2
09-Jan 0.67133 2
05-Feb 20.4366 3
06-Feb 5.77923 3
06-Feb 3.12323 3
05-Feb 2.25436 3
06-Feb 1.74551 3
06-Feb 1.52744 3
05-Feb 1.45483 3
28-Jul 1.55148 4
29-Jul 1.18882 4
30-Jul 1.10595 4
31-Jul 1.14101 4
01-Aug 1.1453 4
02-Aug 1.10113 4
03-Aug 1.09152 4
30-Nov 8.3254 5
01-Dec 4.03003 5
02-Dec 2.18026 5
03-Dec 1.40028 5
04-Dec 1.02901 5
05-Dec 0.85859 5
06-Dec 0.7776 5
我想作为 R 总结 no 列中每个组(1 到 5)的 mold 列中的值。例如,对于 no=1,它将是
1.35436 + 0.88592 + 0.81316 + 0.80856 + 0.84646 + 0.81762 + 0.79828 = 6.32436
然后重复 no = 2、3、4 等。
【问题讨论】:
-
你可以使用
aggregate而不需要任何for循环,aggregate(mold~no, df, sum) -
谢谢。我试图搜索。您能否提供任何指向以前提出的类似问题的链接?
-
是的,以前有人问过这个问题。 stackoverflow.com/questions/1660124/… 这里有很多选择,使用各种包和基础 R。
-
这不是链接问题的骗局,因为它专门针对
for循环 -
是的。由于某些原因,我更喜欢它在循环中而不是使用聚合。我将要使用的函数将输出结果列表,因此使聚合显示结果变得混乱。我在示例中使用的 sum 函数只是询问的简化版本。