R 转置数据帧
我有一个关于将数据帧重新塑造为它的转置版本的问题(如果这是正确的话)。我想采取如下措施:R 转置数据帧,r,plyr,reshape2,R,Plyr,Reshape2,我有一个关于将数据帧重新塑造为它的转置版本的问题(如果这是正确的话)。我想采取如下措施: A B C 1 6 1 1 18 1 1 21 1 3 18 1 3 21 1 4 6 1 4 18 1 4 20 1 4 21 1 并将其转换为数据帧,如: A B_1 C_1 B_2 C_2 B_3 C_3 ... 1 6 1 18 1 21 1 3 18 1 21 1 4 6 1
A B C
1 6 1
1 18 1
1 21 1
3 18 1
3 21 1
4 6 1
4 18 1
4 20 1
4 21 1
并将其转换为数据帧,如:
A B_1 C_1 B_2 C_2 B_3 C_3 ...
1 6 1 18 1 21 1
3 18 1 21 1
4 6 1 18 1 20 1 21 1
R中是否有我不知道的go-to函数,或者我应该循环这个过程?
谢谢
DF您好,欢迎来到stack overflow。您要查找的问题可能与此问题类似:此问题的一些有用搜索词是[r][restrape][restrape2][plyr]
DF <- read.table(text="A B C
1 6 1
1 18 1
1 21 1
3 18 1
3 21 1
4 6 1
4 18 1
4 20 1
4 21 1",header=TRUE)
library(plyr)
DF <- ddply(DF,.(A),transform,No=seq_along(A))
# A B C No
# 1 1 6 1 1
# 2 1 18 1 2
# 3 1 21 1 3
# 4 3 18 1 1
# 5 3 21 1 2
# 6 4 6 1 1
# 7 4 18 1 2
# 8 4 20 1 3
# 9 4 21 1 4
library(reshape2)
DF <- melt(DF,id.vars=c("A","No"))
res <- dcast(DF,A~No+variable)
# A 1_B 1_C 2_B 2_C 3_B 3_C 4_B 4_C
# 1 1 6 1 18 1 21 1 NA NA
# 2 3 18 1 21 1 NA NA NA NA
# 3 4 6 1 18 1 20 1 21 1
res <- dcast(DF,A~variable+No)
# A B_1 B_2 B_3 B_4 C_1 C_2 C_3 C_4
# 1 1 6 18 21 NA 1 1 1 NA
# 2 3 18 21 NA NA 1 1 NA NA
# 3 4 6 18 20 21 1 1 1 1