繁体   English   中英

将 dataframe 中的 R 中的列压缩为 2 列(索引和值)

[英]condensing columns in a dataframe in R into 2 columns (index & value)

最初的 dataframe 类似于

ProductID  Month_1   Month_2    Month_3
1           50       50         0
2           0        400        0    
3           0        0          20  

每个月的值都列在每个产品的单独列中。 我正在尝试将这些列压缩为通用标识符和值列,但遇到了麻烦。

理想的 output 看起来像这样

ProductID  Month   Value 
1           1       50
1           2       30
2           2       400  
3           3       20   

我们可以使用pivot_longer filter不等于 0 的元素

library(dplyr)
library(tidyr)
pivot_longer(df1, cols = -ProductID, names_to = c(".value", "month"), 
        names_sep = "_") %>% 
  filter(Month != 0) 

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM