gpt4 book ai didi

Julia:子集数据框

转载 作者:行者123 更新时间:2023-12-04 01:17:14 24 4
gpt4 key购买 nike

我有两个制表符分隔的文件;一个是数据,第二个是我感兴趣的列的名称。我想对数据框进行子集化,以便它只有我感兴趣的列。这是我的代码:

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)

这里重要的是 hdr 应该是一个字符串向量。

你也可以这样写:

dat2 = select(df1, readdlm("header.txt",'\t')...)

将矩阵的内容(包含列名称的字符串)展开为位置参数。

关于Julia:子集数据框,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63139580/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com