- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
244个-6ren">
我有一个比较大的.dta
包含 1280000 个观察值的文件,在 Stata 中运行良好,但我在将其导入 R 时遇到了麻烦。
数据是用Stata 15创建的,数据中包含strL或str#,#>244个变量,不能以Stata 12格式保存。
我正在尝试使用 haven
使用 read_dta()
导入保存的数据的包但它给了我以下错误消息:"Failed to parse /Users/folder/my_data.dta: Unable to allocate memory."
有谁知道可能导致此问题的原因以及如何克服它以便能够在 R 中导入数据?
我试图以多种方式解决这个问题,但我的尝试似乎都没有奏效。
Sys.setenv('R_MAX_VSIZE'=32000000000)
扩展我的 r 环境的内存大小。但是当我尝试导入数据时,控制台报告了同样的错误。该问题似乎与我在 R 中的内存大小无关。saveold my_data13, version(13)
以 Stata 13 格式保存数据在 Stata 中,但尝试使用 haven
将其导入 R仍然产生相同的错误信息。read.dta13(my_data13)
,但这经常会导致 R 崩溃。最佳答案
我只想总结评论中提到的所有内容。
来自 official Stata documentation ,我们有以下内容:
strL variables can be 0 to 2-billion bytes long.strL variables are not required to be longer than 2,045 bytes.str# variables can store strings of up to 2,045 bytes, so strL and str# overlap. This overlap is comparable to the overlap of the numeric types int and float. Any number that can be stored as an int can be stored as a float. Similarly, any string that can be stored as a str#, can be stored as a strL. The reverse is not true. In addition, strL variables can hold binary strings, whereas str# variables can only hold text strings. Thus the analogy between str#/strL and int/float is exact. There will be occasions when you will want to use strL variables in preference to str# variables, just as there are occasions when you will want to use float variables in preference to int variables.
strL
没有必要。strL
的使用是您问题的根源,可能导致与 haven
的一些兼容性问题图书馆。version 16
clear all
set obs 1
*4200 character string generated here: http://www.unit-conversion.info/texttools/random-string-generator/
gen strL str_var_in_strL = "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"
describe
Contains data
obs: 1
vars: 1
------------------------------------------------------------------------------------
storage display value
variable name type format label variable label
------------------------------------------------------------------------------------
str_var_in_strL strL %9s
------------------------------------------------------------------------------------
save "route\all_in_strL" , replace
之后,我将您的修改应用于我生成的数据。
gen var1 = str_var_in_strL
foreach var of varlist var1 {
generate str `var'_str = `var'
replace `var' = ""
compress `var'
replace `var' = `var'_str
drop `var'_str
describe `var'
}
obs: 1
vars: 2 16 Dec 2020 12:07
------------------------------------------------------------------------------------
storage display value
variable name type format label variable label
------------------------------------------------------------------------------------
str_var_in_strL strL %9s
var1 strL %9s
------------------------------------------------------------------------------------
save "route\edited_strL" , replace
奇怪的是,我能够使用
haven
将这两个文件导入到 R 中。带有以下代码的库。
library(haven)
file <- "route_to_first_file/all_in_strL.dta"
# Import first file into R.
dta_in_R <- read_dta(
file,
encoding = NULL,
col_select = NULL,
skip = 0,
n_max = Inf,
.name_repair = "unique")
# Import edited file using your loop method into R.
file <- "route_to_edited_file/edited_strL.dta"
edited_dta_in_R<- read_dta(
file,
encoding = NULL,
col_select = NULL,
skip = 0,
n_max = Inf,
.name_repair = "unique")
这里唯一的区别可能是:
strL
类型的数据,但您的机器上可用的内存,这可能由您的
compress
解决了进入您描述的 for 循环。
haven_2.3.1
关于r - 避风港 : read_dta error() "Failed to parse/Users/folder/my_data.dta: Unable to allocate memory.",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/65304984/
我正在尝试打开一个 Stata .dta文件被压缩成 winrar在 R. 这是我的代码: library(foreign) setwd("C:/Users/ASUS/Desktop/Data on
我对 stata 比较陌生,我需要将几个 .dta 文件一起 append 到一个数据集中。 我有一个名为 2015 的文件夹,文件如下所示... jan_2015.dta feb_2015.dta
我有一个 10 GB .dta Stata 文件,我正在尝试将其读入 64 位 R 3.3.1。我正在使用大约 130 GB RAM(4 TB HD)的虚拟机,.dta 文件大约有 300 万行和 4
如果某个地方有一个简单的答案,我提前道歉。似乎是这样的事情,但我似乎无法通过搜索 SO 或通过谷歌搜索在帮助文件中找到它。 我现在正在处理一些几 GB 的数据集。它足以容纳我可以访问的集群节点之一的内
我目前正在导入 Stata -使用以下内容将 .dta 文件创建到 SAS 中: proc import datafile='myfile.dta' out=test dbms=dta replace
我正在处理一个大约 3.3 GB 的 Stata .dta 文件,所以它很大但不会太大。我对使用 IPython 很感兴趣,并尝试使用 Pandas 导入 .dta 文件,但发生了一些奇怪的事情。我的
不知道有没有人知道统计数据分析软件Stata中有一个Python包可以让你把numpy数组/recarrays保存成.dta格式。这确实会加快我现有系统中的几个步骤。 最佳答案 scikits.sta
我在数据库中定义了以下表 铺表 店铺编号 店名 所有者 横幅 标题 城市编号 ShopImageId 活跃 城市表 城市编号 城市名 国家/地区 地区编号 国家/地区表 国家/地区 国家名称 地区编号
有没有办法将dta文件转换为csv? 我的计算机上没有安装 Stata 版本,因此我无法执行以下操作: File --> "Save as csv" 最佳答案 令人难以置信的 Python 数据分析库
我正在尝试使用 pandas.read_stata 读取 Python 中的 Stata (.dta) 文件,但出现此错误: ValueError: Version of given Stata fi
我正在尝试使用我的电脑中现有的数据,即 .dta 文件。 我尝试使用以下命令在 R 中打开它: mydata> not a Stata version 5-12 .dta file 任何帮助将不胜感激
我希望通过 Python 将许多 .CSV 文件转换为 .DTA 文件的过程自动化。 .DTA 文件是由 Stata 统计语言处理的文件类型。 但是,我还没有找到解决这个问题的方法。 R 语言有 wr
我的问题。我有一个遗留的 Turbo Pascal 程序,仍在 MS DOS 上运行。原始来源已丢失,我需要处理在 .DTA 文件中找到的信息。 我真的很想从 .Net 访问这些信息,阅读和更新。第一
我已经从 USGS 网站下载了 .dat 格式的空间数据,我也无法在 textedit 中读取 - 它只是说“../ofr041189it03/vat.adf”。我熟悉 STATA、ArcGIS 和
我将 .dta(Stata 文件格式)导入到 R 中,但变量标签似乎没有随变量名称一起导入。 使用foreign::read.dta,我尝试了labels(df),但这只给我变量名;并且 str(df
我正在尝试使用 StataReader 将大型数据集从 Stata 13 导入 pandas。这在 pandas 0.13.1 上运行良好,但在我升级到 0.14.1 后,读取 .dta 文件的能力似
我试图用 Pandas 打开一个 dta 文件,但得到一个 UnicodeDecodeError: >>> import pandas as pd >>> pd.read_stata('/some/s
如何避免将 Stata 数据读入 R 时的编码问题? 我希望读取的数据集是 Stata 12 或 Stata 13 中的 .dta(在 Stata 在版本 14 中引入对 utf-8 的支持之前)。包
我想在 R 中读取 .dta 文件,以便将其转换为 .csv 文件。首先,我尝试使用 foreign 包这样做,但它报告: read.dta(file) 错误:不是 Stata 版本 5-12 .dt
我已使用复制事件将数据复制到 azure blob 容器。我能够使用它来使用 Blob 触发器触发我的 azure 函数。但是,我的要求是调用可以在 azure datafactory 管道中配置的
我是一名优秀的程序员,十分优秀!