Julia 如何处理;不适用;在朱莉娅

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

我需要在Julia中创建一个缺少值(“NA”)的文件。
我用来读取文件的命令是:

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
的行为类似于columnar
DataArray
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
的代码