R 将少数列转到行并保留另一列
如何将部分列转换为行并维护其余列 我有如下示例表:R 将少数列转到行并保留另一列,r,dataframe,R,Dataframe,如何将部分列转换为行并维护其余列 我有如下示例表: Name Date Math Science Computer Zed 201401 89 90 93 Ben 201401 98 92 89 Dan 201401 83 96 92 期望输出: Name Date Subject Grade
Name Date Math Science Computer
Zed 201401 89 90 93
Ben 201401 98 92 89
Dan 201401 83 96 92
期望输出:
Name Date Subject Grade
Zed 201401 Math 89
Zed 201401 Science 90
Zed 201401 Computer 93
Ben 201401 Math 98
Ben 201401 Science 92
Ben 201401 Computer 89
Dan 201401 Math 83
Dan 201401 Science 96
Dan 201401 Computer 92
我尝试使用t(dataFrame)
,但它会转换整个数据集
有人能帮忙吗?谢谢。使用Reforme2软件包中的
melt
功能
> library(reshape2)
> melt(df, id=c("Name", "Date"), variable.name="Subject", value.name="Grade")
Name Date Subject Grade
1 Zed 201401 Math 89
2 Ben 201401 Math 98
3 Dan 201401 Math 83
4 Zed 201401 Science 90
5 Ben 201401 Science 92
6 Dan 201401 Science 96
7 Zed 201401 Computer 93
8 Ben 201401 Computer 89
9 Dan 201401 Computer 92
在base R中,尝试以下操作:
cbind(mydf[c(1, 2)], stack(mydf[-c(1, 2)]))
# Name Date values ind
# 1 Zed 201401 89 Math
# 2 Ben 201401 98 Math
# 3 Dan 201401 83 Math
# 4 Zed 201401 90 Science
# 5 Ben 201401 92 Science
# 6 Dan 201401 96 Science
# 7 Zed 201401 93 Computer
# 8 Ben 201401 89 Computer
# 9 Dan 201401 92 Computer
谢谢你的帮助。:)