I want to calculate means over several columns for each row in my dataframe containing missing values, and place results in a new column called \'means.\' Here\'s my datafra
Regarding the error in OP's code, we can use the concatenate function c to get those elements as a single vector and then do the mean as mean can take only a single argument.
df %>%
rowwise() %>%
mutate(means = mean(c(A, B, C), na.rm = TRUE))
# A B C means
#
#1 3 0 9 4.000000
#2 4 6 NA 5.000000
#3 5 8 1 4.666667
Also, we can use rowMeans with transform
transform(df, means = rowMeans(df, na.rm = TRUE))
# A B C means
#1 3 0 9 4.000000
#2 4 6 NA 5.000000
#3 5 8 1 4.666667
Or using data.table
library(data.table)
setDT(df)[, means := rowMeans(.SD, na.rm = TRUE)]