Je suis resté coincé dans ce problème et je ne sais pas quelle approche est la plus efficace! Je souhaite générer une table de données basée sur deux listes de caractères: Ma première table de données est:
sample 1 sample 2 N a b 2 c c 1 b c 3 c d 2 a c 3
si les listes sont:
List1= list('a','b') List2= list('c')
Maintenant, je veux regarder le " sample1 " et trouvez le sous-ensemble du tableau de données ci-dessus basé sur les deux listes.
Le résultat que je recherche est:
sample 1 sample 2 N a b 2 c c 1 b c 3 c d 2 a c 3 d f 1 d h 3
J'apprécierais votre aide sur celui-ci.
3 Réponses :
List1 = list('a', 'b') List2= list('c') DT <- fread( "sample 1, sample 2, N a, b, 2 c, c, 1 b, c, 3 c, d, 2 a, c, 3 d, f, 1 d, h, 3")
Y a-t-il quelque chose qui vous empêche de combiner les listes puis de filtrer par le résultat?
Par exemple:
list <- c(unlist(List1), unlist(List2)) df <- filter(df, `sample 1` %in% list)
Nous pouvons utiliser le sous-ensemble
de la base R
df2 <- structure(list(sample1 = c("a", "c", "b", "c", "a", "d", "d"), sample2 = c("b", "c", "c", "d", "c", "f", "h"), N = c(2L, 1L, 3L, 2L, 3L, 1L, 3L)), class = "data.frame", row.names = c(NA, -7L)) List1 <- list('a', 'b') List2 <- list('c')
subset(df2, sample1 %in% unlist(c(List1, List2)))
p>
Le
[]
n'est pas une liste R. Vouliez-vous direList1 = list ('a', 'b')
ouList1 = c ('a' , 'b')
Mon mauvais, Liste 1 = liste ('a', 'b')
Veuillez formater votre code. Ce devrait être
list ('a', 'b')