I have a data frame as below:
structure(list(group = c("K4", "K4", "K1", "K1", "K4", "K4",
"K1", "K4", "K5", "K4", "K4", "K5", "K4", "K3", "K3", "K4", "K4",
"K4", "K4", "K3", "K3", "K5", "K3", "K5", "K3", "K5", "K3", "K3",
"K1", "K4", "K5", "K4", "K2", "K4", "K2", "K5", "K1", "K1", "K1",
"K1", "K1", "K1", "K3", "K4", "K3", "K3", "K3", "K1", "K1", "K5",
"K5", "K1", "K1", "K1", "K1", "K1", "K1", "K5", "K1", "K3", "K4",
"K3", "K2", "K4", "K4", "K4", "K3", "K2", "K4", "K3", "K4", "K3",
"K2", "K5", "K4", "K3", "K4", "K5", "K5", "K4", "K4", "K4", "K4",
"K1", "K2", "K4", "K4", "K5", "K3", "K3", "K5", "K5", "K4", "K4",
"K4", "K4", "K3", "K1", "K3", "K5", "K3", "K3", "K3", "K4", "K1",
"K1", "K2", "K5", "K5", "K5", "K3", "K5", "K4", "K5", "K5", "K4",
"K2", "K5", "K2", "K4", "K4", "K4", "K4", "K4", "K4", "K3", "K4",
"K1", "K2", "K4", "K1", "K4", "K4", "K4", "K1", "K1", "K5", "K5",
"K1", "K5", "K5", "K5", "K4", "K3", "K3", "K5", "K4", "K4", "K3",
"K2", "K3", "K4", "K3", "K3", "K3", "K3", "K3", "K3", "K5", "K4",
"K5", "K5", "K4", "K5", "K1", "K5", "K1", "K1", "K5", "K5", "K5",
"K1", "K4", "K5", "K1", "K3", "K5", "K4", "K5", "K2", "K2", "K4",
"K1", "K2", "K3", "K4", "K4", "K2", "K4", "K4", "K2", "K4", "K5",
"K5", "K3", "K2", "K4", "K4", "K1", "K1", "K1", "K1", "K4", "K3",
"K3", "K4", "K5", "K5", "K4", "K5", "K4", "K3", "K4", "K5", "K3",
"K4", "K1", "K3", "K3", "K4", "K3", "K4", "K3", "K1", "K5", "K5",
"K1", "K1", "K5", "K5", "K1", "K1", "K1", "K1", "K5", "K4", "K4",
"K3", "K3", "K3", "K3", "K3", "K3", "K4", "K4", "K5", "K1", "K4",
"K5", "K5", "K4", "K4", "K5", "K4", "K5", "K5", "K4", "K4", "K5",
"K4", "K5", "K5", "K5", "K5", "K5", "K2", "K1", "K5", "K1", "K4",
"K4", "K1", "K1", "K1", "K1", "K1", "K1", "K1", "K1", "K1"),
gene1 = c("MT", "MT", "WT", "WT", "MT", "MT", "MT", "MT",
"WT", "MT", "MT", "WT", "MT", "MT", "MT", "MT", "MT", "MT",
"MT", "MT", "MT", "WT", "MT", "MT", "MT", "WT", "MT", "MT",
"MT", "MT", "WT", "WT", "MT", "MT", "MT", "WT", "MT", "MT",
"MT", "MT", "MT", "MT", "MT", "MT", "MT", "MT", "MT", "MT",
"MT", "MT", "MT", "MT", "MT", "MT", "MT", "MT", "MT", "WT",
"MT", "WT", "MT", "MT", "MT", "MT", "MT", "MT", "MT", "MT",
"MT", "MT", "MT", "MT", "MT", "MT", "WT", "WT", "MT", "WT",
"WT", "MT", "MT", "MT", "MT", "WT", "MT", "MT", "MT", "WT",
"WT", "WT", "WT", "WT", "WT", "WT", "WT", "MT", "MT", "MT",
"WT", "MT", "MT", "MT", "MT", "MT", "MT", "MT", "MT", "MT",
"MT", "MT", "MT", "MT", "MT", "MT", "MT", "MT", "MT", "MT",
"WT", "MT", "MT", "MT", "MT", "MT", "MT", "MT", "MT", "MT",
"MT", "MT", "MT", "WT", "MT", "MT", "MT", "MT", "WT", "WT",
"MT", "MT", "MT", "WT", "MT", "MT", "MT", "MT", "MT", "MT",
"WT", "MT", "MT", "MT", "MT", "MT", "MT", "MT", "MT", "MT",
"WT", "MT", "WT", "MT", "WT", "MT", "MT", "WT", "MT", "WT",
"MT", "WT", "WT", "WT", "MT", "MT", "WT", "MT", "WT", "WT",
"WT", "WT", "WT", "MT", "MT", "MT", "MT", "MT", "MT", "MT",
"MT", "MT", "MT", "MT", "WT", "MT", "WT", "MT", "MT", "MT",
"MT", "MT", "MT", "WT", "MT", "WT", "MT", "MT", "WT", "WT",
"MT", "WT", "MT", "WT", "MT", "WT", "MT", "MT", "MT", "MT",
"MT", "MT", "MT", "MT", "MT", "MT", "MT", "MT", "MT", "WT",
"MT", "WT", "MT", "MT", "MT", "MT", "MT", "MT", "MT", "MT",
"MT", "MT", "MT", "MT", "MT", "MT", "MT", "MT", "MT", "MT",
"MT", "MT", "MT", "MT", "MT", "MT", "MT", "MT", "MT", "MT",
"WT", "MT", "MT", "MT", "MT", "MT", "MT", "MT", "WT", "WT",
"MT", "MT", "MT", "MT", "MT", "MT", "MT", "MT", "MT", "MT",
"MT", "MT"), gene2 = c("WT", "WT", "MT", "MT", "MT", "MT",
"WT", "WT", "WT", "WT", "WT", "WT", "WT", "WT", "WT", "WT",
"WT", "WT", "WT", "WT", "WT", "WT", "MT", "WT", "WT", "WT",
"MT", "WT", "MT", "WT", "WT", "MT", "WT", "WT", "WT", "MT",
"MT", "MT", "MT", "MT", "MT", "MT", "WT", "WT", "WT", "WT",
"WT", "WT", "WT", "MT", "MT", "MT", "MT", "MT", "MT", "MT",
"MT", "MT", "WT", "WT", "WT", "MT", "MT", "WT", "WT", "WT",
"WT", "WT", "WT", "WT", "WT", "WT", "MT", "WT", "MT", "MT",
"WT", "WT", "WT", "WT", "WT", "MT", "MT", "WT", "WT", "WT",
"WT", "MT", "MT", "MT", "MT", "MT", "MT", "MT", "MT", "MT",
"MT", "MT", "MT", "MT", "MT", "MT", "MT", "WT", "WT", "WT",
"WT", "WT", "MT", "MT", "MT", "MT", "MT", "MT", "MT", "WT",
"WT", "WT", "WT", "WT", "WT", "WT", "WT", "MT", "WT", "MT",
"MT", "MT", "WT", "WT", "MT", "MT", "MT", "WT", "MT", "MT",
"WT", "WT", "WT", "WT", "MT", "WT", "WT", "MT", "MT", "MT",
"MT", "MT", "MT", "WT", "WT", "WT", "WT", "WT", "WT", "WT",
"WT", "MT", "MT", "WT", "WT", "MT", "WT", "WT", "WT", "MT",
"WT", "MT", "WT", "MT", "MT", "MT", "WT", "MT", "MT", "MT",
"MT", "MT", "WT", "MT", "WT", "WT", "WT", "WT", "WT", "WT",
"WT", "WT", "WT", "WT", "WT", "WT", "WT", "WT", "MT", "WT",
"WT", "WT", "MT", "MT", "MT", "MT", "MT", "MT", "MT", "WT",
"WT", "MT", "WT", "MT", "WT", "MT", "WT", "WT", "MT", "WT",
"WT", "WT", "WT", "WT", "WT", "WT", "WT", "MT", "MT", "MT",
"MT", "MT", "WT", "WT", "MT", "MT", "MT", "MT", "WT", "WT",
"WT", "WT", "WT", "WT", "WT", "WT", "WT", "WT", "MT", "MT",
"MT", "MT", "MT", "MT", "WT", "WT", "WT", "WT", "WT", "WT",
"MT", "MT", "WT", "WT", "WT", "WT", "WT", "WT", "WT", "MT",
"MT", "MT", "MT", "WT", "WT", "MT", "MT", "MT", "MT", "MT",
"MT", "MT", "MT", "MT"), gene3 = c("WT", "WT", "WT", "WT",
"WT", "WT", "WT", "WT", "WT", "WT", "WT", "WT", "WT", "WT",
"WT", "WT", "WT", "WT", "WT", "WT", "WT", "WT", "WT", "WT",
"WT", "WT", "WT", "WT", "WT", "WT", "WT", "WT", "WT", "WT",
"WT", "WT", "WT", "WT", "WT", "WT", "WT", "WT", "WT", "WT",
"WT", "WT", "WT", "WT", "WT", "WT", "WT", "WT", "WT", "WT",
"WT", "WT", "WT", "WT", "WT", "WT", "WT", "WT", "WT", "WT",
"WT", "WT", "WT", "WT", "MT", "MT", "MT", "MT", "WT", "WT",
"WT", "WT", "WT", "WT", "WT", "WT", "WT", "WT", "WT", "WT",
"WT", "WT", "WT", "WT", "WT", "WT", "WT", "WT", "WT", "WT",
"WT", "WT", "WT", "WT", "WT", "WT", "WT", "WT", "WT", "WT",
"WT", "WT", "WT", "WT", "WT", "WT", "WT", "WT", "WT", "WT",
"WT", "WT", "WT", "WT", "WT", "WT", "WT", "WT", "WT", "WT",
"WT", "WT", "WT", "WT", "WT", "WT", "WT", "WT", "WT", "WT",
"WT", "WT", "WT", "WT", "MT", "MT", "WT", "WT", "MT", "WT",
"WT", "WT", "WT", "WT", "WT", "WT", "MT", "WT", "WT", "WT",
"WT", "WT", "WT", "WT", "WT", "WT", "WT", "WT", "WT", "WT",
"WT", "WT", "WT", "WT", "WT", "WT", "WT", "WT", "WT", "WT",
"WT", "WT", "WT", "WT", "MT", "WT", "WT", "WT", "WT", "WT",
"WT", "WT", "WT", "WT", "WT", "WT", "WT", "WT", "WT", "WT",
"WT", "WT", "WT", "WT", "WT", "WT", "WT", "WT", "WT", "WT",
"WT", "WT", "WT", "WT", "MT", "WT", "WT", "WT", "WT", "WT",
"WT", "MT", "MT", "MT", "MT", "MT", "WT", "WT", "WT", "WT",
"WT", "WT", "WT", "WT", "WT", "WT", "WT", "WT", "WT", "WT",
"WT", "WT", "WT", "WT", "WT", "WT", "WT", "WT", "WT", "WT",
"WT", "WT", "WT", "WT", "WT", "WT", "WT", "WT", "MT", "MT",
"MT", "MT", "WT", "WT", "WT", "WT", "WT", "WT", "WT", "WT",
"WT", "WT", "WT", "WT", "WT", "WT", "WT", "WT", "WT", "WT",
"WT", "WT", "WT", "WT", "WT", "WT"), gene4 = c("WT", "WT",
"WT", "WT", "WT", "WT", "WT", "WT", "WT", "WT", "WT", "WT",
"WT", "WT", "WT", "WT", "WT", "WT", "WT", "WT", "WT", "WT",
"WT", "WT", "WT", "WT", "WT", "WT", "WT", "WT", "WT", "WT",
"WT", "WT", "WT", "WT", "WT", "WT", "WT", "WT", "WT", "WT",
"WT", "WT", "WT", "WT", "WT", "MT", "MT", "WT", "WT", "WT",
"WT", "WT", "WT", "WT", "WT", "WT", "WT", "WT", "WT", "WT",
"WT", "WT", "WT", "WT", "WT", "WT", "WT", "WT", "WT", "WT",
"WT", "WT", "WT", "WT", "WT", "WT", "WT", "WT", "WT", "WT",
"WT", "WT", "WT", "WT", "WT", "WT", "WT", "WT", "WT", "WT",
"WT", "WT", "WT", "WT", "WT", "WT", "WT", "WT", "WT", "WT",
"WT", "WT", "WT", "WT", "WT", "WT", "WT", "WT", "WT", "WT",
"WT", "WT", "WT", "WT", "WT", "WT", "WT", "WT", "WT", "WT",
"WT", "WT", "WT", "WT", "WT", "WT", "WT", "WT", "WT", "WT",
"WT", "WT", "WT", "WT", "MT", "MT", "WT", "WT", "WT", "WT",
"WT", "WT", "WT", "WT", "WT", "WT", "WT", "WT", "WT", "MT",
"WT", "WT", "WT", "WT", "WT", "WT", "WT", "WT", "WT", "WT",
"WT", "WT", "WT", "WT", "WT", "WT", "WT", "WT", "WT", "WT",
"WT", "WT", "WT", "WT", "WT", "WT", "WT", "WT", "WT", "WT",
"WT", "WT", "WT", "WT", "WT", "WT", "WT", "WT", "WT", "WT",
"WT", "WT", "WT", "WT", "WT", "WT", "WT", "WT", "WT", "WT",
"WT", "WT", "WT", "WT", "WT", "WT", "WT", "WT", "WT", "WT",
"WT", "WT", "WT", "WT", "WT", "WT", "WT", "WT", "MT", "MT",
"MT", "WT", "WT", "WT", "WT", "WT", "WT", "WT", "WT", "WT",
"WT", "WT", "WT", "WT", "WT", "WT", "WT", "WT", "WT", "WT",
"WT", "WT", "WT", "WT", "WT", "WT", "WT", "WT", "MT", "MT",
"WT", "WT", "WT", "WT", "WT", "WT", "WT", "WT", "WT", "WT",
"WT", "WT", "WT", "WT", "WT", "WT", "WT", "WT", "WT", "WT",
"WT", "WT", "WT", "WT", "WT", "WT", "WT", "WT")), row.names = c(NA,
-280L), class = "data.frame")
I want to count the number of each factor in columns 2:5 separately for each column, also divided into factors in column1.
I can achieve this for single column by mydata %>% group_by(group) %>% select(gene1) %>% table()
but not for all columns at the same time.
I would also like to add a column with percentage for "WT"
at the end of each row.
Thank you.
You could reshape the data to long format and then count
the occurrence
library(dplyr)
df %>%
tidyr::pivot_longer(cols = -group) %>%
#Or in older version use gather
#gather(name, value, -group) %>%
count(group, name, value)
# A tibble: 38 x 4
# group name value n
# <chr> <chr> <chr> <int>
# 1 K1 gene1 MT 49
# 2 K1 gene1 WT 9
# 3 K1 gene2 MT 46
# 4 K1 gene2 WT 12
# 5 K1 gene3 MT 2
# 6 K1 gene3 WT 56
# 7 K1 gene4 MT 2
# 8 K1 gene4 WT 56
# 9 K2 gene1 MT 15
#10 K2 gene1 WT 3
# … with 28 more rows
To get the ratio you could do
df %>%
tidyr::pivot_longer(cols = -group) %>%
count(group, name, value) %>%
group_by(group, name) %>%
mutate(mean_n = n/sum(n))