Aktualnie czytam plik w pakiecie, korzystając z pakietu readr
. Chodzi o to, aby użyć read_delim
do czytania w wierszu dla wiersza, aby znaleźć maksymalne kolumny w moim nieustrukturyzowanym pliku danych. Kod podaje, że są problemy z parsing
. Wiem o nich i zajmę się typem kolumny po imporcie. Czy istnieje sposób, aby wyłączyć problems()
jak zwykle options(warn)
nie działaPomiń problemy z analizą pamięci w r
i=1
max_col <- 0
options(warn = -1)
while(i != "stop")
{
n_col<- ncol(read_delim("file.txt", n_max = 1, skip = i, delim="\t"))
if(n_col > max_col) {
max_col <- n_col
print(max_col)
}
i <- i+1
if(n_col==0) i<-"stop"
}
options(warn = 0)
wyjście do konsoli, że staram się tłumić jest następujący:
.See problems(...) for more details.
Warning: 11 parsing failures.
row col expected actual
1 1####4 valid date 1###8
Mam wrażenie, że powinieneś poprawić plik przed R, zanim go zaimportujesz. Może awk lepiej nadaje się do tego zadania? – Tensibai
'suppressWarnings (x <- readr :: parse_integer (c (" 1X "," bla "," 3 ")))) wydaje się działać ... – cory
Prawdopodobnie lepiej otworzyć połączenie' file', przeczytaj plik a linia naraz i policzyć separatory? 'max (sapply (readLines (" file.txt "), function (x) {length (strsplit (x," \ t ") [[1]])}))' – Spacedman