Это следующий вопрос моего предыдущего вопроса
Учитывая, что у меня есть фрейм данных, подобный этому:
g1:1 4
g1:2 5
g1:3 9
g2:1 6
g2:2 2
g3:1 5
g3:2 6
g4:1 4
g4:1 1
Я использую следующий код для разделенияпервый столбец в :
tab2 <- read.table("dplyrtest.txt",header=FALSE)
dput(tab2)
structure(list(V1 = structure(c(1L, 2L, 3L, 4L, 5L, 6L, 7L, 8L,
8L), .Label = c("g1:1", "g1:2", "g1:3", "g2:1", "g2:2", "g3:1",
"g3:2", "g4:1"), class = "factor"), V2 = c(4L, 5L, 9L, 6L, 2L,
5L, 6L, 4L, 1L)), class = "data.frame", row.names = c(NA, -9L
))
tab2 <- data.frame(tab2$V1, do.call(rbind, strsplit(as.character(tab2$V1),split=":")))
str(tab2)
'data.frame': 9 obs. of 3 variables:
$ tab2.V1: Factor w/ 8 levels "g1:1","g1:2",..: 1 2 3 4 5 6 7 8 8
$ X1 : Factor w/ 4 levels "g1","g2","g3",..: 1 1 1 2 2 3 3 4 4
$ X2 : Factor w/ 3 levels "1","2","3": 1 2 3 1 2 1 2 1 1
tab2$X2 <- as.integer(tab2$X2)
str(tab2)
'data.frame': 9 obs. of 3 variables:
$ tab2.V1: Factor w/ 8 levels "g1:1","g1:2",..: 1 2 3 4 5 6 7 8 8
$ X1 : Factor w/ 4 levels "g1","g2","g3",..: 1 1 1 2 2 3 3 4 4
$ X2 : int 1 2 3 1 2 1 2 1 1
colnames(tab2) <- c("gene","name","count")
dput(tab2)
structure(list(gene = structure(c(1L, 2L, 3L, 4L, 5L, 6L, 7L,
8L, 8L), .Label = c("g1:1", "g1:2", "g1:3", "g2:1", "g2:2", "g3:1",
"g3:2", "g4:1"), class = "factor"), name = structure(c(1L, 1L,
1L, 2L, 2L, 3L, 3L, 4L, 4L), .Label = c("g1", "g2", "g3", "g4"
), class = "factor"), count = structure(c(1L, 2L, 3L, 1L, 2L,
1L, 2L, 1L, 1L), .Label = c("1", "2", "3"), class = "factor")), class = "data.frame", row.names = c(NA,
-9L))
tab2 <- tab2 %>% group_by(name) %>% filter(sum(as.integer(count)) > 10)
Это выдает предупреждение, и в tab2 нет данных:
# A tibble: 0 x 3
# Groups: name [1]
# … with 3 variables: gene <fct>, name <fct>, count <fct>
Warning message:
Factor `name` contains implicit NA, consider using `forcats::fct_explicit_na`
Любая помощь приветствуется ??