如何在R中透视/合并数据

如何在R中透视/合并数据,r,transformation,R,Transformation,这是我的数据集的一个示例 可复制数据帧 这是我想要达到的结构,以便可视化 使用R,任何人都能指向正确的方向吗?我想我需要将峰值和峰值合并,并在其中添加一个轴。您可以尝试以下方法: library(dplyr) library(tidyr) datt %>% select(Name, Type, Peak) %>% pivot_longer(cols = Peak, names_to = 'Distance', values_to = 'Value') %>% di

这是我的数据集的一个示例

可复制数据帧

这是我想要达到的结构,以便可视化

使用R,任何人都能指向正确的方向吗?我想我需要将峰值和峰值合并,并在其中添加一个轴。

您可以尝试以下方法:

library(dplyr)
library(tidyr)

datt %>%
  select(Name, Type, Peak) %>%
  pivot_longer(cols = Peak, names_to = 'Distance', values_to = 'Value') %>%
  distinct() %>%
  bind_rows(datt %>% 
              mutate(Distance = as.character(Distance)) %>%
              select(-Peak)) %>%
  arrange(Name, Type)

#  Name  Type  Distance Value
#  <chr> <chr> <chr>    <dbl>
#1 John  a     Peak        30
#2 John  a     50           2
#3 John  a     100          4
#4 John  b     Peak        45
#5 John  b     50           3
#6 John  b     100          6
但是,请注意,距离列现在是字符类型,因为在数据帧中只能有一种类型的列。

您可以尝试以下方法:

library(dplyr)
library(tidyr)

datt %>%
  select(Name, Type, Peak) %>%
  pivot_longer(cols = Peak, names_to = 'Distance', values_to = 'Value') %>%
  distinct() %>%
  bind_rows(datt %>% 
              mutate(Distance = as.character(Distance)) %>%
              select(-Peak)) %>%
  arrange(Name, Type)

#  Name  Type  Distance Value
#  <chr> <chr> <chr>    <dbl>
#1 John  a     Peak        30
#2 John  a     50           2
#3 John  a     100          4
#4 John  b     Peak        45
#5 John  b     50           3
#6 John  b     100          6
但是,请注意,距离列现在是字符类型,因为在数据帧中只能有一种类型的列。

这里是data.table选项

   Name Type Distance Value
1: John    a     Peak    30
2: John    a       50     2
3: John    a      100     4
4: John    b     Peak    45
5: John    b       50     3
6: John    b      100     6
这是data.table选项

   Name Type Distance Value
1: John    a     Peak    30
2: John    a       50     2
3: John    a      100     4
4: John    b     Peak    45
5: John    b       50     3
6: John    b      100     6