r - 将宽数据重塑为长格式
问题描述
我在使用 . 将宽数据改造成长格式时遇到了麻烦reshape
melt
。但我找不到最适合我需要的解决方案。对不起,如果我重复这个问题。我的单个变量的月度数据(CSV 文件)格式如下;
Date level1 level2 level3 level4 ..... level100
1/1/2003 191.3 191.4 191.4 191.4
1/2/2003 184.3 184.3 184.3 184.3
1/3/2003 176.5 176.5 176.5 176.5
1/4/2003 175.5 175.5 175.5 175.5
..
..
1/12/2003
我正在尝试以这种格式重塑
Date Level value
1/1/2003 1 191.3
1/1/2003 2 191.4
.. .. ..
1/1/2003 100 #value
1/2/2003 1 #value
1/2/2003 2 #value
..
1/2/2003 100 #value
等等...
解决方案
您可以使用pivot_longer
from tidyr
-
result <- tidyr::pivot_longer(df,
cols = -Date,
names_to = 'Level',
names_pattern = 'level(\\d+)'
)
result
# Date Level value
# <chr> <chr> <dbl>
# 1 1/1/2003 1 191.
# 2 1/1/2003 2 191.
# 3 1/1/2003 3 191.
# 4 1/1/2003 4 191.
# 5 1/2/2003 1 184.
# 6 1/2/2003 2 184.
# 7 1/2/2003 3 184.
# 8 1/2/2003 4 184.
# 9 1/3/2003 1 176.
#10 1/3/2003 2 176.
#11 1/3/2003 3 176.
#12 1/3/2003 4 176.
#13 1/4/2003 1 176.
#14 1/4/2003 2 176.
#15 1/4/2003 3 176.
#16 1/4/2003 4 176.
要将输出写入 csv,请使用write.csv
-
write.csv(result, 'result.csv', row.names = FALSE)
推荐阅读
- php - 如何使会话变量可用作 Twig 全局变量?
- ios - Swift - 下一行的属性字符串背景颜色
- excel - 条件格式中 IF 语句的语法 两组条件
- reactjs - Apollo 客户端没有读取使用 useQuery 钩子传入的变量
- google-admin-sdk - 使用GET chromeosdevices方法时,返回的资源中是否返回了自定义字段?
- php - laravel:防止返回 null 的查询
- javascript - 如何使用 eventListener 在 javaScript 中停止 setInterval 计时器?
- pip - 如何为 pip 设置超时,以便我可以在不可靠的 Internet 连接上下载包?
- c# - Guid.NewGuid() 在 Parallel.For 循环中使用时返回重复值
- ios - SwiftUI:将动态数据传递给内容视图后重绘