Hi @Vicky_Das,
Welcome to the RStudio Community Forum.
Here is as reproducible example showing how to get your sample data into a dataframe, to start calculating simple statistics, and thinking about modelling options:
a <- "
user m1 m2 m3 m4
u1 2 4 NA NA
u2 3 5 NA 1
u3 NA 1 2 2
u4 NA NA 3 NA
"
dat <- read.table(text=a, header=TRUE)
dat
#> user m1 m2 m3 m4
#> 1 u1 2 4 NA NA
#> 2 u2 3 5 NA 1
#> 3 u3 NA 1 2 2
#> 4 u4 NA NA 3 NA
str(dat)
#> 'data.frame': 4 obs. of 5 variables:
#> $ user: chr "u1" "u2" "u3" "u4"
#> $ m1 : int 2 3 NA NA
#> $ m2 : int 4 5 1 NA
#> $ m3 : int NA NA 2 3
#> $ m4 : int NA 1 2 NA
library(dplyr)
#>
#> Attaching package: 'dplyr'
#> The following objects are masked from 'package:stats':
#>
#> filter, lag
#> The following objects are masked from 'package:base':
#>
#> intersect, setdiff, setequal, union
library(tidyr)
dat %>%
pivot_longer(cols=c(m1:m4), names_to="movie", values_to="rating") %>%
group_by(user) %>%
summarise(m_rating = mean(rating, na.rm=TRUE))
#> # A tibble: 4 x 2
#> user m_rating
#> <chr> <dbl>
#> 1 u1 3
#> 2 u2 3
#> 3 u3 1.67
#> 4 u4 3
dat %>%
pivot_longer(cols=c(m1:m4), names_to="movie", values_to="rating") %>%
group_by(movie) %>%
summarise(m_rating = mean(rating, na.rm=TRUE))
#> # A tibble: 4 x 2
#> movie m_rating
#> <chr> <dbl>
#> 1 m1 2.5
#> 2 m2 3.33
#> 3 m3 2.5
#> 4 m4 1.5
Created on 2020-05-18 by the reprex package (v0.3.0)
HTH