我甚至不知道如何标题的问题正确![R重新排列数据帧:一些行的列
假设我有一个数据帧d:
当前数据帧:
d <- data.frame(sample = LETTERS[1:2], cat = letters[11:20], count = c(1:10))
sample cat count
1 A k 1
2 B l 2
3 A m 3
4 B n 4
5 A o 5
6 B p 6
7 A q 7
8 B r 8
9 A s 9
10 B t 10
,我想重新安排你的事情,使得每只猫值变为它自己的专栏,样品仍然是一列(或成为行名称),计数将是价值在新的猫列,0,其中一个样本不具有猫的计数。像这样:
期望中的数据框布局:
sample k l m n o p q r s t
1 A 1 0 3 0 5 0 7 0 9 0
2 B 0 2 0 4 0 6 0 8 0 10
什么是去了解它的最好方法?
这是据我已经得到:
for (i in unique(d$sample)) {
s <- d[d$sample==i,]
st <- as.data.frame(t(s[,3]))
colnames(st) <- s$cat
rownames(st) <- i
}
即通过在原始数据帧的样本循环和调换为每个样本子集。因此,在这种情况下,我得到
k m o q s
A 1 3 5 7 9
和
l n p r t
B 2 4 6 8 10
这是我卡住。我用merge(),bind(),apply()等方法尝试了一堆东西,但我似乎无法击中正确的东西。另外,我不禁想知道上面的这个循环是否是必要的步骤 - 也许是用unstack()的东西?
不用说,我是新至R ...如果有人能帮助我,这将不胜感激!
PS原因,我试图重新安排我的数据帧是在制作的价值更容易绘制的希望(即我要显示在表格式的阴谋实际DF)。
谢谢!
你想要做的是从“长”到“宽”去操作。这个问题之前已经被问及过很多次了。 – nograpes
我的歉意。我通过这里和谷歌搜索无尽的,我只是找不到任何我需要的东西(不知道如何调用我所需要的不是帮助)。我会寻找“长”/“宽”... – crs