J'ai un vecteur de chaînes dans R, certains de ses indices sont chr (0). Je veux imprimer les index chr (0), puis les supprimer. Je suis incapable de faire l'une des deux tâches. Ce que j'ai essayé pour la première scénario sont 3 solutions différentes:Imprimer et supprimer des entrées chr (0) dans une liste de chaînes
(1) temp <- keepColumns[keepColumns == character(0)]
(2) temp2 <- which(keepColumns[]== "0")
(3) temp2 <- foreach(i=1:length(keepColumns)) %do% if (length(keepColumns[i]) == 0) print("Empty")
#if (identical(keepColumns[i],character(0))) { print(i) }
Dans tous les cas, la valeur de température se révèle être
> temp2
integer(0)
Pour enlever chr (0), je l'ai essayé des solutions similaires:
keepColumnsList = keepColumns[!identical(keepColumns, character(0))]
mais keepColumnsList est le même que le vecteur d'origine.
La liste est la suivante:
> keepColumns
[[1]]
> keepColumns
[[1]]
[1] "P2.11FIC2026_PV"
[[2]]
[1] "P2.11FIC2046D_PV"
[[3]]
[1] "P2.11FI2046"
[[4]]
[1] "P2.11FY2048I"
[[5]]
[1] "P2.11FIC2030_PV"
[[6]]
[1] "P2.11FIC2011A_PV"
[[7]]
[1] "P2.11FIC2017_OP"
[[8]]
[1] "P2.11HIC5001"
[[9]]
[1] "P2.11HIC5002"
[[10]]
[1] "P2.11HIC5003"
[[11]]
[1] "P2.11PI5014"
[[12]]
[1] "P2.11TIC5003_PV"
[[13]]
[1] "P2.11TIC5011_PV"
[[14]]
[1] "P2.11FIC5011_PV"
[[15]]
character(0)
[[16]]
[1] "P2.11TI5001"
[[17]]
[1] "P2.11PIC2031_PV"
[[18]]
[1] "P2.11PIC2045_PV"
[[19]]
[1] "P2.11HIC2026E"
[[20]]
[1] "P2.11AI2001A1"
[[21]]
[1] "P2.11AI2001A7"
[[22]]
[1] "P2.11FI2029"
[[23]]
[1] "P2.11AI2026"
[[24]]
[1] "P2.11AI2001A8"
[[25]]
[1] "P2.11TI2076"
[[26]]
[1] "P2.11TI2068"
[[27]]
[1] "P2.11TI2027"
[[28]]
[1] "P2.11TI2071"
[[29]]
[1] "P2.11AI2001G6"
[[30]]
[1] "P2.11TI2047"
[[31]]
[1] "P2.11AI2001G1"
[[32]]
[1] "P2.11AI2001G2"
[[33]]
[1] "P2.11AI2001G3"
[[34]]
[1] "P2.11AI2001G4"
[[35]]
[1] "P2.11AI2001G5"
[[36]]
[1] "P2.11AI2001H5"
[[37]]
[1] "P2.11FI5001"
[[38]]
[1] "P2.11FI5021"
[[39]]
[1] "P2.11FI5023"
[[40]]
[1] "P2.11PI5004"
[[41]]
[1] "P2.11TI5009"
[[42]]
[1] "P2.11TI5010"
[[43]]
[1] "P2.11TI5026"
[[44]]
[1] "P2.11TI5034"
[[45]]
[1] "P2.11TI5036"
[[46]]
[1] "P2.11TI5038"
[[47]]
[1] "P2.11TI5045"
[[48]]
[1] "P2.11FI2001A"
[[49]]
[1] "P2.11FI2001B"
[[50]]
character(0)
[[51]]
character(0)
[[52]]
[1] "P2.11TI2061"
[[53]]
[1] "P2.11TI2062"
[[54]]
[1] "P2.11TI2063"
[[55]]
[1] "P2.11TI2064"
[[56]]
[1] "P2.11TI2065"
[[57]]
[1] "P2.11TI2066"
il semble que 'keepColumns' est une liste, est-ce vrai? 'class (keepColumns)'? – Nate
Vous avez une liste. Essayez: 'Filter (length, keepColumns)' pour que l'élément ne soit pas égal à 'character (0)' et si vous voulez imprimer ceux qui sont égaux à 'character (0)' alors vous pouvez faire 'Filter (function (x) length (x) == 0, keepColumns) '. – Abdou
oui c'est une "liste" –