【发布时间】:2016-02-23 18:25:52
【问题描述】:
我有一个 R DataFrame df,内容如下:
Serial N year current
B 10 14
B 10 16
C 12 11
D 40 20
B 11 15
C 12 9
如果序列号和年份是相同的序列号和年份,我想添加一个计算平均电流的列。 我想要这样的东西
Serial N year current Average
B 10 14 15
B 10 16 15
C 12 13 12
D 40 20 20
B 11 15 15
C 12 11 12
这是我写的
for (i in unique(df$Serial_N))
{
for (j in unique (df$year))
{ data=subset(df,Serial_N==i & year==j)
df$Average<-mean(data$current)
}
}
当我运行它时,我有以下错误
Error in `$<-.data.frame`(`*tmp*`, "Average", value = NaN) :
replacement has 1 row, data has 0
什么是问题?我该如何解决?
【问题讨论】:
-
你是如何得到 D 的平均值为 40 的?
-
transform(df, Avg = ave(current, Serial_N, year))? -
好的,所以您再次更改了输出。我得到了你的新输出。
-
我很抱歉这个错误。确实是 20 而不是 40
-
你是如何获得
12的平均水平的?
标签: r