r - 将带有计数的宽数据帧转换为R中的长格式

标签 r

我正在努力将数据转换为长格式

在 R 中,我有以下数据:

alcolevel <- c(0,0.5,1.5,4.0,7.0)
present <- c(48,38,5,1,0)
absent <- c(17066,14464,788,126,37)
dataset1 <- data.frame(alcolevel,present,absent)


     alcolevel present absent 
1         0      48  17066 
2       0.5      38  14464 
3       1.5       5    788   
4       4.0       1    126  
5       7.0       0     37   

我希望将 dataset1 转换为:

alcolevel  Y
0          present
0          present
0          absent
0          absent
0          absent
 .            .
 .            .
 .            .
0.5        absent
0.5        present
0.5        present
0.5        present
 .            .
 .            .
 .            .
1.5        present
 .            .
 .            .
 .            .
7.0        present
7.0        present

所以我得到 48 人在场,17066 人缺席 alcolevel 0 。其他同样alcolevel类别。 转换后,新的长数据集将是一个长数据集。 我很感谢对这个问题的任何帮助。谢谢

最佳答案

如果我们需要复制,请在转为“长”格式后对“值”列进行uncount

library(dplyr)
library(tidyr)
dataset1 %>% 
    pivot_longer(cols = -alcolevel, names_to = 'Y' ) %>%
    uncount(value)  %>%
    as_tibble
# A tibble: 32,573 x 2
#   alcolevel    Y  
#       <dbl> <chr>  
# 1         0 present
# 2         0 present
# 3         0 present
# 4         0 present
# 5         0 present
# 6         0 present
# 7         0 present
# 8         0 present
# 9         0 present
#10         0 present
# … with 32,563 more rows

关于r - 将带有计数的宽数据帧转换为R中的长格式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60195529/

相关文章:

r - 带有输入的每一行数据框的 map_dfc

r - 如何在R中生成具有指定对数正态分布的随机数?

r - 一个图,多个时间序列,来自带有 ggplot2 的 CSV 文件

r - 更改脱脂打印汇总函数的顺序

regex - 如何用R中的 "something plus special characters"替换许多特殊字符

r - 带有 R 的 zillow api - XML 问题

r - 我可以在 R 中的哪个位置永久存储自定义函数?

r - ggplot2:更改轴上因子变量的显示顺序

r - 是否有从 Excel 电子表格导入现有图形的 R 函数?

r - 使用 .SD 计算 data.table 中列子集的累积和