作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
考虑下表:
julia> using RDatasets, DataFrames
julia> anscombe = dataset("datasets","anscombe")
11x8 DataFrame
| Row | X1 | X2 | X3 | X4 | Y1 | Y2 | Y3 | Y4 |
|-----|----|----|----|----|-------|------|-------|------|
| 1 | 10 | 10 | 10 | 8 | 8.04 | 9.14 | 7.46 | 6.58 |
| 2 | 8 | 8 | 8 | 8 | 6.95 | 8.14 | 6.77 | 5.76 |
| 3 | 13 | 13 | 13 | 8 | 7.58 | 8.74 | 12.74 | 7.71 |
| 4 | 9 | 9 | 9 | 8 | 8.81 | 8.77 | 7.11 | 8.84 |
| 5 | 11 | 11 | 11 | 8 | 8.33 | 9.26 | 7.81 | 8.47 |
| 6 | 14 | 14 | 14 | 8 | 9.96 | 8.1 | 8.84 | 7.04 |
| 7 | 6 | 6 | 6 | 8 | 7.24 | 6.13 | 6.08 | 5.25 |
| 8 | 4 | 4 | 4 | 19 | 4.26 | 3.1 | 5.39 | 12.5 |
| 9 | 12 | 12 | 12 | 8 | 10.84 | 9.13 | 8.15 | 5.56 |
| 10 | 7 | 7 | 7 | 8 | 4.82 | 7.26 | 6.42 | 7.91 |
| 11 | 5 | 5 | 5 | 8 | 5.68 | 4.74 | 5.73 | 6.89 |
现在我想定义一个函数 f1(., ., .)
它将接受一个数据框、一个值和一个字段名称作为输入,并返回与匹配字段对应的行值。
julia> function f1(df, val, field)
return df[df[:field] .== val, :]
end
我收到以下错误
julia> f1(anscombe, 11, "X1")
ERROR: KeyError: key :field not found
in getindex at ./dict.jl:697 [inlined]
in getindex(::DataFrames.Index, ::Symbol) at /home/username/.julia/v0.5/DataFrames/src/other/index.jl:114
in getindex at /home/username/.julia/v0.5/DataFrames/src/dataframe/dataframe.jl:228 [inlined]
in f1(::DataFrames.DataFrame, ::String, ::Int64) at ./REPL[229]:2
但以下内容没问题:
julia> anscombe[anscombe[:X1] .== 11, :]
1×8 DataFrames.DataFrame
│ Row │ X1 │ X2 │ X3 │ X4 │ Y1 │ Y2 │ Y3 │ Y4 │
├─────┼────┼────┼────┼────┼──────┼──────┼──────┼──────┤
│ 1 │ 11 │ 11 │ 11 │ 8 │ 8.33 │ 9.26 │ 7.81 │ 8.47 │
仅供引用,我正在使用 Julia 版本 0.5.2
。我该如何克服这个问题?提前致谢! :)
最佳答案
衷心感谢@Dan Getz 提供的解决方案
Dan Getz 的解决方案!!!正确的做法是:
julia> function f1(df, row, field)
return df[df[Symbol(field)] .== row, :]
end
julia> f1(anscombe, 11, "X1")
1×8 DataFrames.DataFrame
│ Row │ X1 │ X2 │ X3 │ X4 │ Y1 │ Y2 │ Y3 │ Y4 │
├─────┼────┼────┼────┼────┼──────┼──────┼──────┼──────┤
│ 1 │ 11 │ 11 │ 11 │ 8 │ 8.33 │ 9.26 │ 7.81 │ 8.47 │
关于dataframe - 如何将列名作为参数传递给 Julia DataFrame?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44094610/
我是一名优秀的程序员,十分优秀!