如果我在 R 中有这样的数据:
> a = data.frame(a = c(1, 2),
b = c(3, 4))
> a
a b
1 1 3
2 2 4
但我想这样:
> b = data.frame(k = c("a", "a", "b", "b"),
+ v = c(1, 2, 3, 4))
> b
k v
1 a 1
2 a 2
3 b 3
4 b 4
我怎样才能以这种方式转换数据?
如果我在 R 中有这样的数据:
> a = data.frame(a = c(1, 2),
b = c(3, 4))
> a
a b
1 1 3
2 2 4
但我想这样:
> b = data.frame(k = c("a", "a", "b", "b"),
+ v = c(1, 2, 3, 4))
> b
k v
1 a 1
2 a 2
3 b 3
4 b 4
我怎样才能以这种方式转换数据?
这是一个简单的gather()
使用包tidyr
:
> library(tidyr)
>
> gather(a, key = "k", value = "v")
k v
1 a 1
2 a 2
3 b 3
4 b 4
您也可以使用包中的melt()
功能reshape2
> library(reshape2)
>
> melt(a, variable.name="k", value.name="v")
No id variables; using all as measure variables
k v
1 a 1
2 a 2
3 b 3
4 b 4
希望这是有见地的!