<div dir="ltr"><div class="gmail_default" style="font-family:trebuchet ms,sans-serif">Minha solução não é tão curta como a do Elías e requer funções de alguns pacotes. De qualquer forma, pode ser útil no futuro.<br><br><span style="font-family:courier new,monospace">##-----------------------------------------------------------------------------<br>
<br>x <- "JOSÉ<br>A................................. 2<br>B.....................................0<br>C...................................0<br>D.................................... 6<br>E.......................0<br>
F............................. 1<br>G................................ 13<br>MARIA<br>A................................. 3<br>B.....................................0<br>C...................................0<br>D.................................... 1<br>
E.......................0<br>F............................. 1<br>G................................ 6<br>PEDRO<br>A.................................0<br>B.....................................<br>C...................................0<br>
D...................................0<br>E.......................0<br>F.............................0<br>G................................ 3"<br><br>da <- readLines(textConnection(x)); closeAllConnections()<br><br>
## Em um CMR, fornceça o dput() dos teus dados para que facilite para o<br>## seu colaborador.<br><br>dput(da)<br><br>##-----------------------------------------------------------------------------<br><br>i <- grepl("\\.+", da)<br>
da[!i] ## Nome de coluna.<br>da[i] ## Registro.<br><br>r <- da[i]<br>rs <- strsplit(r, split="\\.+\\s?")<br>rs <- lapply(rs,<br> function(x){<br> y <- as.data.frame(as.list(x), stringsAsFactors=FALSE)<br>
names(y) <- paste0("V", 1:ncol(y))<br> return(y)<br> })<br>rs<br><br></span></div><div class="gmail_default"><span style="font-family:courier new,monospace">## rbind.fill() coloca NA onde for necessário.<br>
</span></div><div class="gmail_default" style="font-family:trebuchet ms,sans-serif"><span style="font-family:courier new,monospace">s <- do.call(plyr::rbind.fill, rs)<br>s$V2 <- as.integer(s$V2)<br>str(s)<br><br>## Considerando que a regularidade de todos terem itens de A até G (7<br>
## elementos), nessa ordem, um após o outro, pode-se fazer.<br><br>s$V3 <- rep(da[!i], each=7)<br>s<br><br>reshape::cast(data=s, V3~V1, value="V2")</span><br><br></div><div class="gmail_default" style="font-family:trebuchet ms,sans-serif;display:inline">
À disposição.<br>Walmes.</div></div>