Попытка заменить Там, где Сумма больше лимита, замените его на 50% лимита. Количество заменяемых элементов не кратно длине замены - PullRequest
0 голосов
/ 22 октября 2019

Попытка замены Там, где Сумма больше лимита, замените его на 50% лимита. Однако он выдает ошибку «количество заменяемых элементов не кратно длине замены»

Ca_spend $Сумма [Ca_spend $ Amount> Ca_spend $ Limit] <- Ca_spend $ Limit / 2 </p>

Ca_spend $ Amount [Ca_spend $ Amount> Ca_spend $ Limit] <- Ca_spend $ Limit / 2 Предупреждение: в Ca_spend$ Amount [Ca_spend $ Amount> Ca_spend $ Limit] <- Ca_spend $ Limit / 2: количество заменяемых элементов не кратно длине замены </p>

Ответы [ 2 ]

1 голос
/ 22 октября 2019

это должно решить это за вас.

library(dplyr)

Ca_spend <- Ca_spend %>%
  mutate(
    Amount = ifelse(Amount > Limit, Limit/2, Amount)
  )

с использованием dplyr mutate метод вам не придется беспокоиться о выравнивании двух сторон вашего задания.
ifelse позаботится о вашем переключателе регистра (если вам когда-либо понадобится больше, чем двоичный переключатель, посмотрите case_when).

0 голосов
/ 22 октября 2019

Вам нужно также выбрать строки, в которых выполняется ваше условие

Ca_spend$Amount[Ca_spend$Amount > Ca_spend$Limit] <- Ca_spend$Limit[Ca_spend$Amount > Ca_spend$Limit]/2

В противном случае на левой стороне вы видите только строки, на которых выполняется условие, а на правой стороне - все строкипоэтому не работает

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...