【问题标题】:Extract values for all data frames inside of a list to create a new data frame in R提取列表中所有数据框的值以在 R 中创建新数据框
【发布时间】:2021-08-14 14:17:57
【问题描述】:

我在 R 中有一个数据帧列表(见下图)。我想在列表之外创建一个唯一的数据框,其中一列包含所有数据框的名称信息,另一列包含纬度数据,另一列包含经度等。

我正在尝试使用lapply,但没有成功:

lapply(Stations.metadata, function(x) df = data.frame(Name=x$Name, Latitud=x$Latitud, Longitud=x$Longitud, Coordinate.System=x$Coordinate.System, Drainage.Area=x$Drainage.Area))

我做错了什么?

【问题讨论】:

  • 试试purrr::map_dfr(Stations.metadata, ~.x)

标签: r list dataframe function lapply


【解决方案1】:

我尝试创建一个类似于你的列表

做这两个中的一个

my.list <- apply(iris[1:4,], 1, as.list)
str(my.list)
#> List of 4
#>  $ 1:List of 5
#>   ..$ Sepal.Length: chr "5.1"
#>   ..$ Sepal.Width : chr "3.5"
#>   ..$ Petal.Length: chr "1.4"
#>   ..$ Petal.Width : chr "0.2"
#>   ..$ Species     : chr "setosa"
#>  $ 2:List of 5
#>   ..$ Sepal.Length: chr "4.9"
#>   ..$ Sepal.Width : chr "3.0"
#>   ..$ Petal.Length: chr "1.4"
#>   ..$ Petal.Width : chr "0.2"
#>   ..$ Species     : chr "setosa"
#>  $ 3:List of 5
#>   ..$ Sepal.Length: chr "4.7"
#>   ..$ Sepal.Width : chr "3.2"
#>   ..$ Petal.Length: chr "1.3"
#>   ..$ Petal.Width : chr "0.2"
#>   ..$ Species     : chr "setosa"
#>  $ 4:List of 5
#>   ..$ Sepal.Length: chr "4.6"
#>   ..$ Sepal.Width : chr "3.1"
#>   ..$ Petal.Length: chr "1.5"
#>   ..$ Petal.Width : chr "0.2"
#>   ..$ Species     : chr "setosa"
#1
purrr::map_dfr(my.list, ~.x)
#> # A tibble: 4 x 5
#>   Sepal.Length Sepal.Width Petal.Length Petal.Width Species
#>   <chr>        <chr>       <chr>        <chr>       <chr>  
#> 1 5.1          3.5         1.4          0.2         setosa 
#> 2 4.9          3.0         1.4          0.2         setosa 
#> 3 4.7          3.2         1.3          0.2         setosa 
#> 4 4.6          3.1         1.5          0.2         setosa
#2
do.call(rbind, lapply(my.list, as.data.frame))
#>   Sepal.Length Sepal.Width Petal.Length Petal.Width Species
#> 1          5.1         3.5          1.4         0.2  setosa
#> 2          4.9         3.0          1.4         0.2  setosa
#> 3          4.7         3.2          1.3         0.2  setosa
#> 4          4.6         3.1          1.5         0.2  setosa

reprex package (v2.0.0) 于 2021-05-26 创建

【讨论】:

    猜你喜欢
    • 2017-10-01
    • 2015-04-21
    • 2020-01-06
    • 1970-01-01
    • 2018-04-17
    • 1970-01-01
    • 1970-01-01
    • 2021-07-23
    • 1970-01-01
    相关资源
    最近更新 更多