我有一个不等长的列表,如下所示
sam <- list(list(symbol = "COUNCODOS.NS", name = "Country Condo's Limited",
price = 4.8, changesPercentage = 0, change = 0, dayLow = 4.6,
dayHigh = 4.9, yearHigh = 7.05, yearLow = 3.4, marketCap = 372467040,
priceAvg50 = 5.383, priceAvg200 = 4.77275, exchange = "NSE",
volume = 72558, avgVolume = 111060, open = 4.8, previousClose = 4.8,
eps = 0.23, pe = 20.87, earningsAnnouncement = "2023-03-31T04:00:00.000+0000",
sharesOutstanding = 77597300, timestamp = 1711619840), list(
symbol = "SPENCERS.NS", name = "Spencer's Retail Limited",
price = 91.3, changesPercentage = 0.44, change = 0.4, dayLow = 90.6,
dayHigh = 94.55, yearHigh = 139.3, yearLow = 51.5, marketCap = 8229051600,
priceAvg50 = 110.369, priceAvg200 = 83.59675, exchange = "NSE",
volume = 500311, avgVolume = 814721, open = 92.25, previousClose = 90.9,
eps = -27.41, pe = -3.33, earningsAnnouncement = "2024-05-20T00:00:00.000+0000",
sharesOutstanding = 90132000, timestamp = 1711619998),list(symbol = "SRPL-RE.NS", price = 0.05, changesPercentage = -50,
change = -0.05, dayLow = 0.05, dayHigh = 0.1, yearHigh = 0.1,
yearLow = 0.05, marketCap = 0, priceAvg50 = 0, priceAvg200 = 0,
exchange = "NSE", volume = 1503842, avgVolume = 0, open = 0.1,
previousClose = 0.1, eps = NA, pe = 0, earningsAnnouncement = NA,
sharesOutstanding = 0, timestamp = 1691575172))
我正在尝试使用下面的代码将其绑定到数据框
do.call(rbind.data.frame, sam)
但是,当我尝试上面的代码时,出现如下错误
Error in (function (..., deparse.level = 1, make.row.names = TRUE, stringsAsFactors = default.stringsAsFactors(), :
numbers of columns of arguments do not match
有没有办法将列表绑定到数据框
您可以使用
rbindlist
包中的 data.table
函数,如下所示:
library(data.table)
rbindlist(sam, fill = TRUE)
#> symbol name price changesPercentage change dayLow
#> <char> <char> <num> <num> <num> <num>
#> 1: COUNCODOS.NS Country Condo's Limited 4.80 0.00 0.00 4.60
#> 2: SPENCERS.NS Spencer's Retail Limited 91.30 0.44 0.40 90.60
#> 3: SRPL-RE.NS <NA> 0.05 -50.00 -0.05 0.05
#> dayHigh yearHigh yearLow marketCap priceAvg50 priceAvg200 exchange volume
#> <num> <num> <num> <num> <num> <num> <char> <num>
#> 1: 4.90 7.05 3.40 372467040 5.383 4.77275 NSE 72558
#> 2: 94.55 139.30 51.50 8229051600 110.369 83.59675 NSE 500311
#> 3: 0.10 0.10 0.05 0 0.000 0.00000 NSE 1503842
#> avgVolume open previousClose eps pe earningsAnnouncement
#> <num> <num> <num> <num> <num> <char>
#> 1: 111060 4.80 4.8 0.23 20.87 2023-03-31T04:00:00.000+0000
#> 2: 814721 92.25 90.9 -27.41 -3.33 2024-05-20T00:00:00.000+0000
#> 3: 0 0.10 0.1 NA 0.00 <NA>
#> sharesOutstanding timestamp
#> <num> <num>
#> 1: 77597300 1711619840
#> 2: 90132000 1711619998
#> 3: 0 1691575172
创建于 2024-03-28,使用 reprex v2.0.2
> sam |> purrr::map_dfr(tibble::as_tibble)
# A tibble: 3 × 22
symbol name price changesPercentage change dayLow dayHigh yearHigh yearLow
<chr> <chr> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl>
1 COUNCODO… Coun… 4.8 0 0 4.6 4.9 7.05 3.4
2 SPENCERS… Spen… 91.3 0.44 0.4 90.6 94.6 139. 51.5
3 SRPL-RE.… NA 0.05 -50 -0.05 0.05 0.1 0.1 0.05
# ℹ 13 more variables: marketCap <dbl>, priceAvg50 <dbl>, priceAvg200 <dbl>,
# exchange <chr>, volume <dbl>, avgVolume <dbl>, open <dbl>,
# previousClose <dbl>, eps <dbl>, pe <dbl>, earningsAnnouncement <chr>,
# sharesOutstanding <dbl>, timestamp <dbl>