У меня есть кадр данных, который выглядит так
a b c d
1 1 1 0
1 1 1 200
1 1 1 300
1 1 2 0
1 1 2 600
1 2 3 0
1 2 3 100
1 2 3 200
1 3 1 0
У меня есть кадр данных, который выглядит так
a b c d
1 1 1 250
1 1 2 600
1 2 3 150
1 3 1 0
я сейчас этим занимаюсь {
n=nrow(subset(Wallmart, a==i & b==j & c==k ))
sum=subset(Wallmart, a==i & b==j & c==k )
#sum
sum1=append(sum1,sum(sum$d)/(n-1))
}
Я хотел бы добавить столбец «d» и взять среднее значение, подсчитав количество строк без подсчета 0. Например, первая строка (200 + 300)/2 = 250. В настоящее время я создаю список, в котором хранится « d', но в идеале я хочу, чтобы он был в формате выше. Например, первая строка будет выглядеть так
a b c d
1 1 1 250
Это очень неэффективный способ выполнения этой работы. Код занимает много времени для выполнения в цикле. поэтому приветствуется любая помощь, которая ускоряет работу. Исходный фрейм данных содержит около миллиона строк.
append
в цикле. - person Roland   schedule 27.04.2014