R语言 导入数据集之前的变量汇总

icnyk63a  于 2023-04-09  发布在  其他
关注(0)|答案(1)|浏览(126)

我正在使用R编程语言。
我有以下直接从互联网下载的大型数据集(加拿大地理空间shapefile):

# https://stackoverflow.com/questions/75913166/no-simple-features-geometry-column-present-in-shapefile
library(sf)
library(rgdal)
# Set the URL for the shapefile
url <- "https://www12.statcan.gc.ca/census-recensement/2011/geo/RNF-FRR/files-fichiers/lrnf000r22a_e.zip"

# Create a temporary folder to download and extract the shapefile
temp_dir <- tempdir()
temp_file <- file.path(temp_dir, "lrnf000r22a_e.zip")

# Download the shapefile to the temporary folder
download.file(url, temp_file)

# Extract the shapefile from the downloaded zip file
unzip(temp_file, exdir = temp_dir)

我的计算机没有很多RAM,无法导入此文件。因此,我试图在不导入此文件的情况下获取有关此文件属性的更多信息。
在没有将文件导入R的情况下,我能够找到这个文件中所有变量的列表:

> ogrInfo(dsn = temp_dir, layer = "lrnf000r22a_e")
Source: "C:\Users\me\AppData\Local\Temp\RtmpwXsVlD", layer: "lrnf000r22a_e"
Driver: ESRI Shapefile; number of rows: 2246324 
Feature type: wkbLineString with 2 dimensions
Extent: (3696309 665490.8) - (9015653 4438073)
CRS: +proj=lcc +lat_0=63.390675 +lon_0=-91.8666666666667 +lat_1=49 +lat_2=77 +x_0=6200000 +y_0=3000000 +datum=NAD83 +units=m +no_defs 
LDID: 87 
Number of fields: 21 
        name type length  typeName
1   OBJECTID   12     10 Integer64
2    NGD_UID    4      9    String
3       NAME    4     50    String
4       TYPE    4      6    String
5        DIR    4      2    String
6    AFL_VAL    4      9    String
7    ATL_VAL    4      9    String
8    AFR_VAL    4      9    String
9    ATR_VAL    4      9    String
10  CSDUID_L    4      7    String
11 CSDNAME_L    4    100    String
12 CSDTYPE_L    4      3    String
13  CSDUID_R    4      7    String
14 CSDNAME_R    4    100    String
15 CSDTYPE_R    4      3    String
16   PRUID_L    4      2    String
17  PRNAME_L    4    100    String
18   PRUID_R    4      2    String
19  PRNAME_R    4    100    String
20      RANK    4      4    String
21     CLASS    4      4    String

**我的问题:**在不将此文件导入R的情况下,是否也可以确定这些变量可以接受的“值”?(例如,PRNAME可能是Province_Name -因此,PRNAME可能包含“安大略”,“魁北克”等值)。

谢谢!

**注:**元数据https://www150.statcan.gc.ca/n1/pub/92-500-g/2021001/tbl/tbl_4.1-eng.htm

# file transfers using R
file.copy(from = file.path(temp_dir, "file_name.txt"),
          to = file.path(getwd(), "file_name.txt"))
mqxuamgl

mqxuamgl1#

数据似乎存储在lrnf000r22a_e.dbf中,而lrnf000r22a_e.dbf似乎是在dbase file format中。这种类型的文件不存储所有可能的列值的元数据。文本值只是存储在文件本身的主体中。您需要扫描整个文件以找到所有可能的值。有内置的解析器,如foreign::read.dbf,但它们假设您希望将所有数据加载到内存中。如果您只想获得一个唯一值的列表,那么您可能需要编写自己的自定义解析器。

相关问题