1
收集值的分布说我有这个数据帧:如何轻松R中重塑数据的关键
> df = structure(list(one = structure(c(1L, 1L, 1L, 2L, 2L, 2L), .Label = c("A", "B"),class = "factor"), two = 1:6),.Names = c("one", "two"),row.names = c(NA, -6L),class = "data.frame")
> df
one two
1 A 1
2 A 2
3 A 3
4 B 4
5 B 5
6 B 6
并希望将其重塑这个:
A B
1 4
2 5
3 6
你可以假设列“one”中每个唯一元素的行数相等。
我能够做到这一点,如下所示:
library(tidyr)
df = cbind(df,index=c(1:3,1:3))
spread(df,key = one,value= two)[,-1]
但是,这感觉就像一个黑客攻击的一位,因为它使用的数据重塑认为,这项结果行观察功能和对值每一行都有一定的关系。在这个解决方案中,我通过添加索引来改变这种关系,这些索引允许重塑以我想要的方式进行。这就要求我删除这些附加信息。不感觉干净。
所以我的问题是,是否有一个功能或简单的单线程,以更直接的方式做我想做的事情?
不错!...给谁就给谁只是downvoted它,有什么不好呢? – Patrick
不错的解决方案.. – user20650