Julia 如何处理;不适用;在朱莉娅
我需要在Julia中创建一个缺少值(“NA”)的文件。Julia 如何处理;不适用;在朱莉娅,julia,missing-data,Julia,Missing Data,我需要在Julia中创建一个缺少值(“NA”)的文件。 我用来读取文件的命令是: file=readdlm(“file\u NAs.txt”,header=false) 问题是,我不能在数学方程(如矩阵乘法)中使用这些文件,因为“NA”s. 我尝试使用包“DataArray”和函数“dropna(file)”,但没有成功。 所以,我想忽略甚至删除那些“NA”的值 以下是加载文件的示例(以空格分隔): NA类型被明确设计为毒害线性代数运算,因此不应将数组与其中的NA相乘 我假设您在加载数据时 us
我用来读取文件的命令是:
file=readdlm(“file\u NAs.txt”,header=false)
问题是,我不能在数学方程(如矩阵乘法)中使用这些文件,因为“NA”s.我尝试使用包“DataArray”和函数“dropna(file)”,但没有成功。
所以,我想忽略甚至删除那些“NA”的值 以下是加载文件的示例(以空格分隔):
NA
类型被明确设计为毒害线性代数运算,因此不应将数组与其中的NA
相乘
我假设您在加载数据时
using DataFrames
x = readtable("FILE_NAs.txt", header = false, separator = ' ')
z = convert(Matrix{Int}, y[2:end])
如果您只想清除包含NA
的行,那么最简单的方法可能是调用
y = DataFrames.na_omit(x)[1]
这将产生一个新的DataFrame
,其中包含NA
的任何行都已被清除。如果要从示例文件中提取数字数据,请执行以下操作
using DataFrames
x = readtable("FILE_NAs.txt", header = false, separator = ' ')
z = convert(Matrix{Int}, y[2:end])
应该有用。我们可以像向量一样索引y
,因为DataFrame
的行为类似于columnarDataArray
s的向量。请注意,将带有NA
项的数据帧
转换为矩阵
将被禁用
如果要按列清除,则确定哪些列中有NA
。一种方法是通过
# get a Bool array of NA positions
y = array(map(isna, eachcol(x)))
# get a vector indexing columns with NA in them
z = vec(!reducedim(|, y, 1))
# now extract columns of x with no missing data
x[z] # <-- only has rows x1, x8
#获取NA位置的布尔数组
y=数组(映射(isna,每一个HCOL(x)))
#获取包含NA的向量索引列
z=vec(!reducedim(|,y,1))
#现在提取x的列,不丢失任何数据
x[z]#是否引用NA?你能给我们一个数据文件的片段和一个简单的工作示例吗?您可以将其作为分隔文件或数据帧
加载,然后仅根据“NA”字符串进行子集加载吗?是的,我可以使用另一个函数加载该文件。老实说,我尝试了其他函数来加载该文件,但是我无法像处理这个函数(readdlm)那样处理该文件。如果有某种方法可以在阵列或矩阵中不使用NAs转换此文件,那么这可能是一个选项。使用readtable
我无法使用脚本中包含findin
等函数的其余部分,例如:tmp=file[findin(file,file2[:,1]),:]
。可能吗?谢谢。我不明白那个代码的作用。findin
是否需要索引?请注意,DataArray
对象——以及扩展为DataFrame
——需要,因为NA也会毒害该操作。有关转换为矩阵的信息,请参阅已编辑的响应。仍不工作:/。我相信命令DataFrames.na_omit(x)[1]
工作不正常,因为x
的维度为30×49620
,而y
的维度为0×49620
。该命令仅删除所有缺少数据的行。显然,这意味着您的每一行都至少包含一个NA
;-)请参阅更新以获取清除列中包含NA
的代码