Julia 朱莉娅:子集数据帧
我有两个制表符分隔的文件;一个是数据,第二个是我感兴趣的列的名称。我想对数据帧进行子集划分,以便它只包含我感兴趣的列。这是我的密码:Julia 朱莉娅:子集数据帧,julia,Julia,我有两个制表符分隔的文件;一个是数据,第二个是我感兴趣的列的名称。我想对数据帧进行子集划分,以便它只包含我感兴趣的列。这是我的密码: dat1 = DataFrame(CSV.File("data.txt")) hdr = Symbol(readdlm("header.txt",'\t')) 给 julia> dat1 4×5 DataFrame │ Row │ chr │ pos │ alt │ ref │ cadd
dat1 = DataFrame(CSV.File("data.txt"))
hdr = Symbol(readdlm("header.txt",'\t'))
给
julia> dat1
4×5 DataFrame
│ Row │ chr │ pos │ alt │ ref │ cadd │
│ │ String │ Int64 │ String │ String │ Float64 │
├─────┼────────┼───────┼────────┼────────┼─────────┤
│ 1 │ chr1 │ 1234 │ A │ T │ 23.4 │
│ 2 │ chr2 │ 1234 │ C │ G │ 5.4 │
│ 3 │ chr2 │ 1234 │ G │ C │ 11.0 │
│ 4 │ chr5 │ 3216 │ A │ T │ 3.0 │
julia> hdr
Symbol("Any[\"pos\" \"alt\"]")
但是,如果我尝试使用以下子集,则会出现错误:
julia> dat2 = dat1[ :, :hdr]
正确的方法是什么?谢谢 只要做:
hdr = vec(readdlm("header.txt",'\t'))
dat2 = dat1[:, hdr]
还是第二步
dat2 = select(df1, hdr)
这里重要的是,hathdr
应该是字符串向量
你也可以写:
dat2 = select(df1, readdlm("header.txt",'\t')...)
将矩阵的内容(包含列名的字符串)显示为位置参数