tutorial studio scraping hacer example con como r

studio - Leer csv de fila específica



scraping r studio (3)

Aquí hay algunas alternativas. (Es posible que desee convertir la primera columna a la clase "Date" adelante y posiblemente convertir todo al objeto del zoológico u otro objeto de la clase de series de tiempo).

# create test data fn <- tempfile() dd <- seq(as.Date("1980-01-01"), as.Date("1989-12-31"), by = "day") DF <- data.frame(Date = dd, Value = seq_along(dd)) write.table(DF, file = fn, row.names = FALSE)

read.table + subconjunto

# if file is small enough to fit in memory try this: DF2 <- read.table(fn, header = TRUE, as.is = TRUE) DF2 <- subset(DF2, Date >= "1985-01-01")

leer.zoo

# or this which produces a zoo object and also automatically converts the # Date column to Date class. Note that all columns other than the Date column # should be numeric for it to be representable as a zoo object. library(zoo) z <- read.zoo(fn, header = TRUE) zw <- window(z, start = "1985-01-01")

Si sus datos no están en el mismo formato que el ejemplo, necesitará usar argumentos adicionales para read.zoo .

tabla de lectura múltiple

# if the data is very large read 1st row (DF.row1) and 1st column (DF.Date) # and use those to set col.names= and skip= DF.row1 <- read.table(fn, header = TRUE, nrow = 1) nc <- ncol(DF.row1) DF.Date <- read.table(fn, header = TRUE, as.is = TRUE, colClasses = c(NA, rep("NULL", nc - 1))) n1985 <- which.max(DF.Date$Date >= "1985-01-01") DF3 <- read.table(fn, col.names = names(DF.row1), skip = n1985, as.is = TRUE)

sqldf

# this is probably the easiest if data set is large. library(sqldf) DF4 <- read.csv.sql(fn, sql = ''select * from file where Date >= "1985-01-01"'')

Tengo datos diarios a partir de 1980 en el archivo csv. Pero solo quiero leer datos de 1985. Debido a que el otro conjunto de datos de otro archivo comienza a partir de 1985. ¿Cómo puedo omitir la lectura de los datos antes de 1985 en el lenguaje R?


Un método data.table que ofrecerá velocidad y rendimiento de memoria:

library(data.table) fread(file, skip = 1825)


Creo que quieres echar un vistazo a ?read.csv para ver todas las opciones.

Es un poco difícil dar una respuesta exacta sin ver una muestra de sus datos.

Si sus datos no tienen un encabezado y usted sabe en qué línea comienzan los datos de 1985, puede usar algo como ...

impordata <- read.csv(file,skip=1825)

... para saltar las primeras 1825 líneas.

De lo contrario, siempre puede subcontratar los datos después de haberlos importado si tiene una variable de año en sus datos.

impordata <- read.csv("skiplines.csv") impordata <- subset(impordata,year>=1985)

Si no sabe dónde comienzan los datos de 1985, puede usar grep para encontrar la primera instancia de 1985 en la variable de fecha de su archivo y luego solo mantenerse a partir de esa línea:

impordata <- read.csv("skiplines.csv") impordata <- impordata[min(grep(1985,impordata$date)):nrow(impordata),]