【问题标题】:Smart transpose of a data frame in RR中数据帧的智能转置
【发布时间】:2020-03-27 18:39:37
【问题描述】:

我在 R (mydata = summary(labo[sapply(mydata, is.numeric)])) 中有多个数字列,然后执行了数据框转换 mydata<-as.data.frame(mydata),我将其作为“数据拥有”:

Var1         Var2           Freq    
1            cars Min.   : 1.100  
2            cars 1st Qu.: 3.375  
3            cars Median : 4.500  
4            cars Mean   :12.075  
5            cars 3rd Qu.:12.350  
6            cars Max.   :12.000  
7            cars      NA's   :3  
8            bikes Min.   : 12.00  
9            bikes 1st Qu.: 23.00  
10           bikes Median : 12.00  
11           bikes Mean   : 10.14  
12           bikes 3rd Qu.: 12.00  
13           bikes Max.   :12.00  
14           bikes     NA's   :2  
15           wheels  Min.   :10.00  
16            wheels  1st Qu.:12.00  
17            wheels  Median :10.00  
18            wheels  Mean   :10.54  
19            wheels  3rd Qu.:12.00  
20            wheels  Max.   :20.00  
21            wheels     NA's   :3  

我正在寻找一种巧妙地将数据帧的输出转换为以下内容的方法:

需要的数据:

Var2 ! Min ! 1st Qu. ! Median ! 3rd Qu. ! Max. !  NA's 
cars !1.100! 3.375. .....
bikes!12.00! 23.00......

【问题讨论】:

    标签: r dplyr tidyverse plyr transpose


    【解决方案1】:

    一个选项是pivot_wider

    library(dplyr)
    library(tidyr)
    df1 %>% 
       separate(Freq, into = c('VarN', 'Freq'), sep=":\\s*", convert = TRUE) %>% 
       select(-Var1) %>% 
       pivot_wider(names_from = VarN, values_from = Freq)
    

    数据

    mydata <- summary(iris[sapply(iris, is.numeric)])
    df1 <- as.data.frame(mydata) 
       
    

    【讨论】:

    • 嗨,谢谢亲爱的 Akrun,这不是正确的结果,它得到了:Var1`汽车``自行车``车轮``etc``etc``etc``etc``etc ` ` SI` ` etc` 1 "" # … 还有 1 个变量:`etc`
    • @HappyMan 你能用输入示例的dput 更新你的帖子吗
    猜你喜欢
    • 1970-01-01
    • 2014-08-14
    • 2016-01-16
    • 1970-01-01
    • 2022-06-11
    • 2019-07-18
    • 2018-09-22
    • 2020-03-08
    • 2021-12-25
    相关资源
    最近更新 更多