我正在尝试将月份作为列,将每种货币的平均价格低于其月份。有谁知道我该如何解决这个问题?
cd_firstYear
Currency month avgprice
1 binance-coin 4 4.3500
2 bitcoin 4 138.5817
3 bitcoin-cash 4 138.5817
答案 0 :(得分:0)
这是pivot_wider
中使用tidyr
的一种方法:
library(tidyr)
pivot_wider(cd_firstYear, values_from = "avgprice", names_from = "month")
## A tibble: 3 x 2
# Currency `4`
# <fct> <dbl>
#1 binance-coin 4.35
#2 bitcoin 139.
#3 bitcoin-cash 139.
答案 1 :(得分:0)
使用软件包pivot_wider
中的函数tidyr
。
library(dplyr)
library(tidyr)
cd_firstYear %>%
pivot_wider(
id_cols = Currency,
names_from = month,
values_from = avgprice
)
## A tibble: 3 x 2
# Currency `4`
# <chr> <dbl>
#1 binance-coin 4.35
#2 bitcoin 139.
#3 bitcoin-cash 139.
数据
cd_firstYear <- read.table(text = "
Currency month avgprice
1 binance-coin 4 4.3500
2 bitcoin 4 138.5817
3 bitcoin-cash 4 138.5817
", header = TRUE)
答案 2 :(得分:0)
我们可以使用dcast
中的data.table
library(data.table)
dcast(setDT(df1), Currency ~ month)
# Currency 4
#1: binance-coin 4.3500
#2: bitcoin 138.5817
#3: bitcoin-cash 138.5817
df1 <- structure(list(Currency = c("binance-coin", "bitcoin", "bitcoin-cash"
), month = c(4L, 4L, 4L), avgprice = c(4.35, 138.5817, 138.5817
)), class = "data.frame", row.names = c(NA, -3L))