【发布时间】:2017-07-04 07:09:59
【问题描述】:
我有一个包含 2 列的数据框:
.id vals
1 A 10
2 B 20
3 C 30
4 A 100
5 B 200
6 C 300
dput(tst_df)
structure(list(.id = structure(c(1L, 2L, 3L, 1L, 2L, 3L), .Label = c("A",
"B", "C"), class = "factor"), vals = c(10, 20, 30, 100, 200,
300)), .Names = c(".id", "vals"), row.names = c(NA, -6L), class = "data.frame")
现在我想让.id 列成为我的列名,并且 vals 将变成 2 行。
像这样:
A B C
10 20 30
100 200 300
基本上 .id 是我的分组变量,我希望将属于 1 个组的所有值作为一行。我期待一些简单的东西,比如融化和变形。但经过多次尝试,我仍然没有成功。有没有人熟悉可以完成此任务的功能?
【问题讨论】:
-
尝试使用
tidyr。这些函数称为spread和gather。未来,pivot_longer和pivot_wider将得到支持,功能更强大。