我无法将reshape2包用于以下目的。
我有一个类似于:
的数据框ID = c("1")
TIME1 = c("0.5")
TIME2 = c("1")
TIME3 = c("2")
TIME4 = c("5")
DF = data.frame(ID, TIME1, TIME2, TIME3, TIME4)
我想对其进行转换以获取以下数据帧:
ID = c("1","1","1","1")
TIME = c("0.5", "1", "2","5")
DF2 = data.frame(ID, TIME)
其中ID在列中重复。
如果我在这个论坛上忽略了类似的答案,我很抱歉,我似乎无法理解融合和dcast功能及其内容。
此外,如果除了reshape2之外的任何其他软件包对此方案有用/更快,请不要犹豫,发布它们。
提前谢谢。
Sincerily,
YKL
答案 0 :(得分:1)
您可以使用melt
library(reshape2)
melt(DF, id.var='ID', value.name='TIME')[,-2]
# ID TIME
#1 1 0.5
#2 1 1
#3 1 2
#4 1 5
或者因为你要求其他包
library(dplyr)
library(tidyr)
gather(DF, Var, TIME,-ID) %>%
select(-Var)