Это мой первый пост, поэтому я надеюсь, что он не слишком элементарный.Я пытаюсь сопоставить наблюдения с отрицательной суммой с аналогами с положительной суммой и равным абс (суммой).Кроме того, я хочу проверить, что обе суммы принадлежат одной учетной записи.Для этого я пытаюсь использовать цикл for, но получаю следующую ошибку: «Операции, возможно, только для числовых, логических или сложных типов».Пока это мой код:
for(i in 1:nrow(data)){
for(j in 1:nrow(data)){
if ((data$Amount[i]=abs(data$Amount[j]))&(data$Amount[i]!=data$Amount[j])&(data$Account[i]=data$Account[j]))
{data$debit[i]<-1}}}
Кто-нибудь знает, почему это происходит, или знает, как лучше использовать семейство функций Apply?Заранее спасибо!
РЕДАКТИРОВАТЬ: Ниже приведен набор данных игрушки: чтобы проиллюстрировать этот пример.Например, для этого набора данных я хочу создать индикаторную переменную, которая будет равна 0, за исключением ID = 3, поскольку для наблюдения 4,7 = abs (-4,7) и "abc1" = "abc1".
Data <- " ID Amount Account
1 5.0 abc1
2 -5.0 abc9
3 4.7 abc1
4 4.6 abc7
5 5.0 abc8
6 -4.7 abc1 "