J'ai un fichier txt qui a ce format:fichier texte lu dans r et stocker ce qui est lu conditionnée à la ligne suivante
--------------------------------------------------------------------------------------------------------------
m5a2 A2. Confirm how much time child lives with respondent
--------------------------------------------------------------------------------------------------------------
type: numeric (byte)
label: BM_101F
range: [-9,7] units: 1
unique values: 8 missing .: 0/4898
tabulation: Freq. Numeric Label
1383 -9 -9 Not in wave
4 -2 -2 Don't know
2 -1 -1 Refuse
3272 1 1 all or most of the time
29 2 2 about half of the time
76 3 3 some of the time
80 4 4 none of the time
52 7 7 only on weekends
--------------------------------------------------------------------------------------------------------------
m5a3 A3. Number of months ago child stopped living with you
--------------------------------------------------------------------------------------------------------------
type: numeric (int)
label: NUMERIC, but 44 nonmissing values are not labeled
range: [-9,120] units: 1
unique values: 47 missing .: 0/4898
examples: -9 -9 Not in wave
-6 -6 Skip
-6 -6 Skip
-6 -6 Skip
--------------------------------------------------------------------------------------------------------------
Ce qui est important pour moi, est le nom de code tels que m5a2
, la Description A2. Confirm how much time child lives with respondent
, et enfin, les valeurs des réponses
tabulation: Freq. Numeric Label
1383 -9 -9 Not in wave
4 -2 -2 Don't know
2 -1 -1 Refuse
3272 1 1 all or most of the time
29 2 2 about half of the time
76 3 3 some of the time
80 4 4 none of the time
52 7 7 only on weekends
Je dois lire les trois éléments dans une liste pour un traitement ultérieur.
J'ai essayé ce qui suit, et cela fonctionne pour récupérer le nom de code et la description.
fileName <- "../data/ff_mom_cb9.txt"
conn <- file(fileName,open="r")
linn <-readLines(conn)
L = list()
for (i in 1:length(linn)){
if((linn[i]=="--------------------------------------------------------------------------------------------------------------") & (linn[i+1]!=""))
{
L[i] = linn[i+1]
}
else
{
# read until hit the next dashed line
}
}
close(conn)
Quelques choses que je suis confus au sujet de: 1. Je ne sais pas comment le laisser lire la ligne jusqu'à ce qu'il touche le suivant la ligne suivante en pointillés. 2. Mon approche est-elle correcte pour stocker les données lues dans une liste si je veux être capable de visualiser la recherche, et récupérer facilement les données?
Merci.
Il semble lire une ligne à la fois en 'd'? – Waht
que faire si vous essayez ceci? –
ou si vous avez des en-têtes, il suffit de le remplacer par TRUE au lieu de FALSE –