R 将行转换为列,然后拆分它们

R 将行转换为列,然后拆分它们,r,transpose,R,Transpose,我有一个数据集,其中包含按行排序的数据,如下所示: *VarName1* - *VarValue1* *VarName2* - *VarValue2* *Etc.* 我希望VarNames成为单独的列。我通过使用以下代码实现了这一点: DFP1 <- as.data.frame(t(DFP)) #DFP contains the data 这就是你想要的吗 library(dplyr) library(tidyr) DFP %>% mutate(sample = cumsu

我有一个数据集,其中包含按行排序的数据,如下所示:

*VarName1* - *VarValue1*
*VarName2* - *VarValue2*
*Etc.*
我希望VarNames成为单独的列。我通过使用以下代码实现了这一点:

DFP1 <- as.data.frame(t(DFP)) #DFP contains the data

这就是你想要的吗

library(dplyr)
library(tidyr)
DFP %>% 
  mutate(sample = cumsum(nmlVar == 'Batch')) %>% 
  spread(nmlVar, noFloat)
给出:


请举例说明使用
dput
时实际的data.frame
DFP
是什么样子的。(不是大小而是结构。)相关:(1)或(2)使用
tidyr
dplyr
。查看Rstudio数据导入和转换备忘表@Axeman由于项目的机密性,我无法做到这一点。是否有其他方法可以帮助您查看结构而不显示列名或数据?请参阅:
DFP <- data.frame(
    nmlVar = c("Batch", "Mass", "Length", "Product","Batch", "Mass", 
    "Length", "Product", "Batch", "Mass", "Length", "Width", "Product"),

    noFloat = c(254578, 20, 24, 24547, 254579, 23, 24, 24547, 254580, 20, 
    24, 19, 24547)
)
structure(list(nmlVar = structure(c(1L, 3L, 2L, 4L, 1L, 3L, 2L, 
4L, 1L, 3L, 2L, 5L, 4L), .Label = c("Batch", "Length", "Mass", 
"Product", "Width"), class = "factor"), noFloat = c(254578, 20, 
24, 24547, 254579, 23, 24, 24547, 254580, 20, 24, 19, 24547)), .Names = c("nmlVar", 
"noFloat"), row.names = c(NA, -13L), class = "data.frame")
library(dplyr)
library(tidyr)
DFP %>% 
  mutate(sample = cumsum(nmlVar == 'Batch')) %>% 
  spread(nmlVar, noFloat)
  sample  Batch Length Mass Product Width
1      1 254578     24   20   24547    NA
2      2 254579     24   23   24547    NA
3      3 254580     24   20   24547    19