, - . , , :
using DataFrames
df = DataFrame(A = 1:4, B = [1, 0, 2, 3], C = [5, 4, 3, 3])
function foo(d)
if d[:B] == 0
return NA
end
return d[:B] / d[:C]
end
comp = DataArray(Float64,4)
map!(r->foo(r), eachrow(df))
`map!` has no method matching map!(::Function, ::DFRowIterator{DataFrame})
, by, , - :
using DataFrames
df = DataFrame(A = 1:4, B = [1, 0, 2, 3], C = [5, 4, 3, 3])
function foo(d)
if d[1,:B] == 0
return []
end
return d[1,:B] / d[1,:C]
end
by(df, [:A,:B,:C]) do d
foo(d)
end
3x4 DataFrame
| Row | A | B | C | x1 |
|-----|---|---|---|----------|
| 1 | 1 | 1 | 5 | 0.2 |
| 2 | 3 | 2 | 3 | 0.666667 |
| 3 | 4 | 3 | 3 | 1.0 |