r - Initializing multiple data frames -
r - Initializing multiple data frames -
i have made multiple lists using split:
mylists <- split (df, interaction(df$age, df$nation)
from it, got 1000 lists, mylists[[1]]
, mylists[[2]]
, ... mylists[[1000]]
how can create (corresponding) 1000 info frames hold info of 1000 lists it? (as when seek converting list info frame in loop, not work need initialize vector of 1000 info frames.)
if i'm understanding question fully, don't see need @ since what's in list already dataframes. let's little demonstration using iris
dataframe we'll modify slightly.
iris2 <- iris iris2$species2 <- rev(iris2$species) mylists <- split(iris2, interaction(iris2$species, iris2$species2)) length(mylists) # [1] 9 sapply(mylists, class) # setosa.setosa versicolor.setosa virginica.setosa # "data.frame" "data.frame" "data.frame" # setosa.versicolor versicolor.versicolor virginica.versicolor # "data.frame" "data.frame" "data.frame" # setosa.virginica versicolor.virginica virginica.virginica # "data.frame" "data.frame" "data.frame"
you can extract dataframes either number or names:
head(mylists[[3]]) # sepal.length sepal.width petal.length petal.width species species2 # 101 6.3 3.3 6.0 2.5 virginica setosa # 102 5.8 2.7 5.1 1.9 virginica setosa # 103 7.1 3.0 5.9 2.1 virginica setosa # 104 6.3 2.9 5.6 1.8 virginica setosa # 105 6.5 3.0 5.8 2.2 virginica setosa # 106 7.6 3.0 6.6 2.1 virginica setosa names(mylists) # [1] "setosa.setosa" "versicolor.setosa" "virginica.setosa" # [4] "setosa.versicolor" "versicolor.versicolor" "virginica.versicolor" # [7] "setosa.virginica" "versicolor.virginica" "virginica.virginica" head(mylists[["virginica.setosa"]]) # sepal.length sepal.width petal.length petal.width species species2 # 101 6.3 3.3 6.0 2.5 virginica setosa # 102 5.8 2.7 5.1 1.9 virginica setosa # 103 7.1 3.0 5.9 2.1 virginica setosa # 104 6.3 2.9 5.6 1.8 virginica setosa # 105 6.5 3.0 5.8 2.2 virginica setosa # 106 7.6 3.0 6.6 2.1 virginica setosa
r data-manipulation
Comments
Post a Comment