У меня есть фрейм данных, и я хотел бы умножить определенные значения в одном столбце на минус 1.
Я могу отфильтровать свой набор данных, умножить нужный мне столбец на -1, а затем присоединить данные обратно к исходному фрейму данных, но это выглядит нелепо нелегко. Мне интересно, есть ли лучшее решение, которое я пропускаю?
Это мой фрейм данных:
input = structure(list(V1 = c("Sales", "Sales", "Sales", "Sales", "Sales",
"Sales", "Sales", "Sales", "Sales", "Sales", "Sales", "Sales",
"Sales", "Sales", "Sales", "Sales", "Sales", "Sales", "Sales",
"Sales"), V2 = c("Frank", "John", "Bill", "Bob", "Toby", "Sam",
"Michael", "Nicole", "Dimitri", "Gene", "Keiran", "Dave", "Lucy",
"Claire", "Sarah", "Virginia", "Bob", "Nicole", "John", "Frank"
), V3 = c("Australia", "Australia", "Australia", "Australia",
"NZ", "NZ", "NZ", "NZ", "Germany", "Germany", "Germany", "Germany",
"India", "India", "India", "India", "USA", "USA", "USA", "USA"
), V4 = c(218L, 140L, 374L, 146L, 317L, 232L, 60L, 177L, 50L,
292L, 255L, 17L, 193L, 364L, 77L, 27L, 330L, 337L, 298L, 361L
)), class = "data.frame", row.names = c(NA, -20L))
И это строки V2, в которых я хотел бы умножить значение столбца V4 на «-1»
inverse = c("Frank", "John", "Toby", "Sam", "Lucy", "Claire")
Это вывод, который я получаю, если отфильтрую по V2, а затем присоединюсь к новым результатам:
structure(list(V1 = c("Sales", "Sales", "Sales", "Sales", "Sales",
"Sales", "Sales", "Sales", "Sales", "Sales", "Sales", "Sales",
"Sales", "Sales", "Sales", "Sales", "Sales", "Sales", "Sales",
"Sales"), V2 = c("Frank", "John", "Bill", "Bob", "Toby", "Sam",
"Michael", "Nicole", "Dimitri", "Gene", "Keiran", "Dave", "Lucy",
"Claire", "Sarah", "Virginia", "Bob", "Nicole", "John", "Frank"
), V3 = c("Australia", "Australia", "Australia", "Australia",
"NZ", "NZ", "NZ", "NZ", "Germany", "Germany", "Germany", "Germany",
"India", "India", "India", "India", "USA", "USA", "USA", "USA"
), V4 = c(-218L, -140L, 374L, 146L, -317L, -232L, 60L, 177L,
50L, 292L, 255L, 17L, -193L, -364L, 77L, 27L, 330L, 337L, -298L,
-361L)), class = "data.frame", row.names = c(NA, -20L))
Мне любопытно, есть ли лучшая функция, которую я мог бы использовать для достижения тех же результатов?