Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/r/79.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
R 从阵列中分离值_R - Fatal编程技术网

R 从阵列中分离值

R 从阵列中分离值,r,R,我有以下数据集。我想保留零件号、材料、形状和组,并将相应的值转置到新列中 我想换成这样: 谁能帮帮我吗。我使用过melt函数,但它无法按照我想要的方式工作。使用dplyr和tidyr可以用以下方式重塑数据: library(dplyr) library(tidyr) df %>% group_by(Group = cumsum(Name == 'part number')) %>% mutate(Group = paste0('Value', Group),

我有以下数据集。我想保留零件号、材料、形状和组,并将相应的值转置到新列中

我想换成这样:


谁能帮帮我吗。我使用过melt函数,但它无法按照我想要的方式工作。使用
dplyr
tidyr
可以用以下方式重塑数据:

library(dplyr)
library(tidyr)

df %>%
  group_by(Group = cumsum(Name == 'part number')) %>%
  mutate(Group = paste0('Value', Group), 
         row = row_number()) %>%
  pivot_wider(names_from = Group, values_from = value) %>%
  select(-row)

#  Name        Value1 Value2 Value3
#  <chr>       <chr>  <chr>  <chr> 
#1 part number A1234  B1234  J25610
#2 Material    AL     TI     PL    
#3 shape       CR     RE     TRI   
#4 Group       47     48     42    
库(dplyr)
图书馆(tidyr)
df%>%
组别依据(组别=总和(名称='零件号'))%>%
变异(组=0('值',组),
行=行编号())%>%
透视图(名称从=组,值从=值)%>%
选择(-行)
#名称值1值2值3
#              
#1零件号A1234 B1234 J25610
#2材料AL-TI-PL
#3型铬稀土三元合金
#4组47 48 42
数据

请以可复制的格式添加数据,而不是图像

df <- data.frame(Name = rep(c('part number', 'Material', 'shape', 'Group'), 3), 
                 value = c('A1234', 'AL', 'CR', 47, 'B1234', 'TI', 'RE', '48', 'J25610', 'PL', 'TRI', 42))

df我强烈建议你不要这样做。您正在查找的数据格式是(脆弱的),因为它在列名(值的后缀)中包含数据。如果你走这条路,你的数据处理将充满痛苦和复杂性。坚持使用您现有的格式,或更改为包含零件号、材料、形状和组列的格式。请输入一个可复制的示例:。列出带有dput的数据集,例如
dput(mtcars)