#r #dataframe
#r #фрейм данных
Вопрос:
Как создать tibble в r, у которого есть имя, указанное на рисунке. Я хочу, чтобы структура доступа к объекту была такой:
S10m$ALAEF$validdate
S10m -object
ALAEF - dataframe/table name
validdate is column name in dataframe
введите описание изображения здесь
Я вижу, что я не был ясен. Я хочу что-то вроде этого:
> str(u10)
List of 1
$ ALAEF: tibble [4,624 x 12] (S3: tbl_df/tbl/data.frame)
..$ SID : int [1:4624] 11060 11080 11800 11803 11805 11806 11810 11812 11813 11815 ...
..$ fcdate : int [1:4624] 1597968000 1597968000 1597968000 1597968000 1597968000 1597968000 1597968000 1597968000 1597968000 1597968000 ...
..$ fcst_cycle : chr [1:4624] "00" "00" "00" "00" ...
..$ leadtime : int [1:4624] 0 0 0 0 0 0 0 0 0 0 ...
..$ parameter : chr [1:4624] "u10m" "u10m" "u10m" "u10m" ...
..$ units : chr [1:4624] "m/s" "m/s" "m/s" "m/s" ...
..$ validdate : int [1:4624] 1597968000 1597968000 1597968000 1597968000 1597968000 1597968000 1597968000 1597968000 1597968000 1597968000 ...
..$ z : int [1:4624] 10 10 10 10 10 10 10 10 10 10 ...
..$ ALAEF_mbr000: num [1:4624] 0.651 0.635 -0.451 -0.662 -1.357 ...
..$ ALAEF_mbr001: num [1:4624] 0.654 0.842 -0.471 -0.502 -1.346 ...
..$ ALAEF_mbr002: num [1:4624] 0.736 0.619 -0.108 -0.53 -1.631 ...
..$ ALAEF_mbr003: num [1:4624] 0.815 0.8 -0.286 -0.271 -1.615 ...
но мои созданные данные выглядят так:
> str(wind)
tibble [4,624 x 17] (S3: tbl_df/tbl/data.frame)
$ SID : int [1:4624] 11060 11080 11800 11803 11805 11806 11810 11812 11813 11815 ...
$ fcdate : int [1:4624] 1597968000 1597968000 1597968000 1597968000 1597968000 1597968000 1597968000 1597968000 1597968000 1597968000 ...
$ fcst_cycle : chr [1:4624] "00" "00" "00" "00" ...
$ leadtime : int [1:4624] 0 0 0 0 0 0 0 0 0 0 ...
$ parameter.x : chr [1:4624] "u10m" "u10m" "u10m" "u10m" ...
$ units : chr [1:4624] "m/s" "m/s" "m/s" "m/s" ...
$ validdate : int [1:4624] 1597968000 1597968000 1597968000 1597968000 1597968000 1597968000 1597968000 1597968000 1597968000 1597968000 ...
$ z : int [1:4624] 10 10 10 10 10 10 10 10 10 10 ...
$ ALAEF_mbr000.x: num [1:4624] 0.651 0.635 -0.451 -0.662 -1.357 ...
$ ALAEF_mbr001.x: num [1:4624] 0.654 0.842 -0.471 -0.502 -1.346 ...
Как мы можем видеть, у объекта wind нет $ ALAEF: tibble […………] часть
Атрибуты для u10:
> attributes(u10)
$names
[1] "ALAEF"
Атрибуты для wind:
> attributes(wind)
$names
[1] "SID" "fcdate" "fcst_cycle" "leadtime"
[5] "parameter.x" "units" "validdate" "z"
[9] "ALAEF_mbr000.x" "ALAEF_mbr001.x" "ALAEF_mbr002.x" "ALAEF_mbr003.x"
[13] "parameter.y" "ALAEF_mbr000.y" "ALAEF_mbr001.y" "ALAEF_mbr002.y"
[17] "ALAEF_mbr003.y"
$row.names
[1] 1 2 3 4 5 6 7 8 9 10 11 12 13 14
[15] 15 16 17 18 19 20 21 22 23 24 25 26 27 28
[29] 29 30 31 32 33 34 35 36 37 38 39 40 41 42
[43] 43 44 45 46 47 48 49 50 51 52 53 54 55 56
Можете ли вы привести мне какой-нибудь пример, как это сделать в r?
Ответ №1:
Вы могли бы вложить фрейм данных (или tibble) внутрь tibble:
library(tibble)
S10m <- tibble(
ALAEF = data.frame(
validdate = as.Date(numeric(0))
)
)
Альтернативой tibble может быть именованный список. Ваш выбор структуры данных зависит от вашего конкретного варианта использования.