Moshi
Moshi

Reputation: 233

Iterate over dataframe names in Julia

I am trying to generate n dataframes using a loop, where each dataframe has one column with i rows populated with random numbers where i=1:n. So far, none of the following iterating methods work for iterating over dataframe names in order to generate them:

n = 5;
for i = 1:n 
    "df_$i" = DataFrame(rand($i), :auto)
end

or

n = 5;
for i = 1:n 
    "df_$(i)" = DataFrame(rand($i), :auto)
end

Thanks!

Upvotes: 1

Views: 153

Answers (1)

Bogumił Kamiński
Bogumił Kamiński

Reputation: 69819

Is this what you want?

julia> [DataFrame("col$i" => rand(i)) for i in 1:3]
3-element Vector{DataFrame}:
 1×1 DataFrame
 Row │ col1
     │ Float64
─────┼──────────
   1 │ 0.368821
 2×1 DataFrame
 Row │ col2
     │ Float64
─────┼──────────
   1 │ 0.757023
   2 │ 0.201711
 3×1 DataFrame
 Row │ col3
     │ Float64
─────┼──────────
   1 │ 0.702651
   2 │ 0.256179
   3 │ 0.560374

(I additionally showed you how to dynamically generate the name of the column in each data frame)

Upvotes: 2

Related Questions