我使用了 pivot_wider 函数来转置来自以下位置的数据帧:
metric shop1 shop2 shop3 shop4
sales 10 12 14 16
county orange sperling wood riverside
使用此代码:
df_new <- pivot_wider(df,
cols = c("shop1", "shop2",
"shop3", "shop4"),
cols = shop)
我得到了以下内容:
measure name value
sales shop1 10
sales shop2 12
sales shop3 14
sales shop4 16
county shop1 orange
county shop2 sperling
county shop3 wood
county shop4 riverside
我希望有单独的列用于销售、县和商店。我该怎么做?
答案 0 :(得分:0)
您可以转置数据帧而不是 pivot_wider
。
library(dplyr)
library(tibble)
df %>%
column_to_rownames('metric') %>%
t %>%
as.data.frame() %>%
type.convert(as.is = TRUE) %>%
rownames_to_column('shop') -> res
res
# shop sales county
#1 shop1 10 orange
#2 shop2 12 sperling
#3 shop3 14 wood
#4 shop4 16 riverside
数据
df <- structure(list(metric = c("sales", "county"), shop1 = c("10",
"orange"), shop2 = c("12", "sperling"), shop3 = c("14", "wood"
), shop4 = c("16", "riverside")), class = "data.frame", row.names = c(NA, -2L))
答案 1 :(得分:0)
从您当前的数据集来看,您应该考虑这样做:
data.table::transpose(df, make.names = TRUE,keep.names = 'shop')
shop sales county
1 shop1 10 orange
2 shop2 12 sperling
3 shop3 14 wood
4 shop4 16 riverside