Input data:
Director= c("Director A", "Director B", "Director C")
Salary = c(40000, 35000, 50000)
Listed boards = c(1, 0, 3)
Unlisted boards = c(4, 2, 6)
Other boards = c(2, 3, 3)
Number of qualifications = c(1, 2, 1)
df_directors = data.frame(Director, Salary, Listed boards, Unlisted boards, Other boards, Number of qualifications)
Now I want to create an extra column that sums and replaces the three columns with regards to boards. So my output data should look like this:
Director Salary Boards Number of qualifications
Director A 40000 7 1
Director B 35000 5 2
Director C 50000 12 1
This code somehow doesn't work.
df_directors <- df_directors %>%
rowwise() %>%
mutate(rBoards = sum(c_across(all_of(Listed Boards:Other Boards))))
We could use rowSums
with select
:
library(dplyr)
df_directors %>%
transmute(Director, Salary, Boards = rowSums(select(., contains("boards"))),Number_of_qualifications)
First solution:
library(dplyr)
df_directors %>%
mutate(Boards = rowSums(select(., contains("boards")))) %>%
select(1,2,Boards,6)
Director Salary Boards Number_of_qualifications
1 Director A 40000 7 1
2 Director B 35000 5 2
3 Director C 50000 12 1