R语言 时间序列由长到宽

rryofs0p  于 2023-04-18  发布在  其他
关注(0)|答案(2)|浏览(148)

我有一个 Dataframe ,如
| 约会|降水|
| --------------|--------------|
| 1950-01-01|二点五|
| 1950-01-02|一点五|
| 我的天|我的天|
| 我的天|我的天|
| 2021-12- 30 - 2021-12-30 - 2021-12-30 - 2021 -12-30 - 2021 - 12 - 20 - 21 - 21 - 21 - 21 - 21 - 21 - 21 - 21 - 21 - 21 - 21 - 21|一点五|
| 2021-12-31 - 2021-12-31|1个|
我想有这样的 Dataframe :
| 年|月份|1个|二|我的天|我的天|三十|三十一|
| --------------|--------------|--------------|--------------|--------------|--------------|--------------|--------------|
| 一九五〇年|01|二点五|一点五|我的天|我的天|三|三点二五|
| 一九五〇年|02|二|1.7|我的天|我的天|3.1|三点五|
| 我的天|我的天|我的天|我的天|我的天|我的天|我的天|我的天|
| 我的天|我的天|我的天|我的天|我的天|我的天|我的天|我的天|
| 2021|十一|二点五|一点五|我的天|我的天|三|三点二五|
| 2021|十二岁|2.3|一点六七|我的天|我的天|1.7|一点五|
如果有人能帮助我,我将不胜感激。先谢了
我在单独的列中提取了月、日和年,并使用了pivot wider:

wide_table <- pivot_wider(df, names_from = day, values_from = value, names_prefix = "Day_", values_fill = NA)

但结果不是我想要的格式

lawou6xi

lawou6xi1#

对于这样的问题,将日期拆分为单独的列首先,然后使用pivot_wider

library(tidyverse)

data <- tibble(date = c('1950-01-01', '1950-01-02'),
               precip = c(2.5, 1.5))

data

date       precip
  <chr>       <dbl>
1 1950-01-01    2.5
2 1950-01-02    1.5

data.wide <- data %>% 
  mutate(date = as.Date(date),
         year = year(date),
         month = month(date),
         day = day(date)) %>% 
  select(-date) %>% 
  pivot_wider(names_from = day, values_from = precip)

data.wide

# A tibble: 1 × 4
   year month   `1`   `2`
  <dbl> <dbl> <dbl> <dbl>
1  1950     1   2.5   1.5

此外,这是一个非常常见和标准的问题,在这个网站和其他网站上都有许多答案。这值得培养你的搜索能力,特别是对于像pivot_wider()这样的基本函数的使用。记住在你的问题中包括示例数据,而不是表格,让你的回答者更容易!

ctehm74n

ctehm74n2#

我想你差不多到了-先去掉日期列,它应该可以工作:

library(tidyr)
library(dplyr)
library(lubridate)

df <- data.frame(date.  = c("1950-01-01", "1950-01-02", "1950-01-03"),
                 precipitation. = c(2.5, 1.5, 4)
                 )

df <- df %>%
  mutate(
    year = year(date.),
    month = month(date.),
    day = day(date.)
  )

df <- df %>%
  select(-date.)

wide_table <- pivot_wider(df, names_from = day, values_from = precipitation., names_prefix = "Day_", values_fill = NA)

相关问题