# Create data with all NAs except one row in each column
mat <- as.data.frame(matrix(NA, nrow = 10, ncol = 10))
for(i in 1:nrow(mat)) {
mat[i,sample(ncol(mat), 1)] <- i
}
knitr::kable(mat, format = "markdown")
| NA |
NA |
NA |
1 |
NA |
NA |
NA |
NA |
NA |
NA |
| NA |
NA |
NA |
NA |
2 |
NA |
NA |
NA |
NA |
NA |
| NA |
NA |
NA |
NA |
3 |
NA |
NA |
NA |
NA |
NA |
| 4 |
NA |
NA |
NA |
NA |
NA |
NA |
NA |
NA |
NA |
| NA |
NA |
NA |
NA |
NA |
NA |
NA |
NA |
5 |
NA |
| NA |
NA |
NA |
NA |
NA |
NA |
6 |
NA |
NA |
NA |
| NA |
NA |
NA |
NA |
NA |
7 |
NA |
NA |
NA |
NA |
| NA |
NA |
8 |
NA |
NA |
NA |
NA |
NA |
NA |
NA |
| NA |
9 |
NA |
NA |
NA |
NA |
NA |
NA |
NA |
NA |
| NA |
NA |
NA |
10 |
NA |
NA |
NA |
NA |
NA |
NA |
# Get one non na value
rowSums(mat, na.rm = TRUE)
## [1] 1 2 3 4 5 6 7 8 9 10
# Add to mat
mat$final <- rowSums(mat, na.rm = TRUE)
# View result
knitr::kable(mat, format = "markdown")
| NA |
NA |
NA |
1 |
NA |
NA |
NA |
NA |
NA |
NA |
1 |
| NA |
NA |
NA |
NA |
2 |
NA |
NA |
NA |
NA |
NA |
2 |
| NA |
NA |
NA |
NA |
3 |
NA |
NA |
NA |
NA |
NA |
3 |
| 4 |
NA |
NA |
NA |
NA |
NA |
NA |
NA |
NA |
NA |
4 |
| NA |
NA |
NA |
NA |
NA |
NA |
NA |
NA |
5 |
NA |
5 |
| NA |
NA |
NA |
NA |
NA |
NA |
6 |
NA |
NA |
NA |
6 |
| NA |
NA |
NA |
NA |
NA |
7 |
NA |
NA |
NA |
NA |
7 |
| NA |
NA |
8 |
NA |
NA |
NA |
NA |
NA |
NA |
NA |
8 |
| NA |
9 |
NA |
NA |
NA |
NA |
NA |
NA |
NA |
NA |
9 |
| NA |
NA |
NA |
10 |
NA |
NA |
NA |
NA |
NA |
NA |
10 |