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)
这里重要的是,hat
hdr
应该是字符串向量

你也可以写:

dat2 = select(df1, readdlm("header.txt",'\t')...)
将矩阵的内容(包含列名的字符串)显示为位置参数