我正在尝试使用融化公式将数据帧从宽格式转换为长格式。挑战在于我有多个标记相同的列名。当我使用 melt 函数时,它会从重复列中删除值。我读过类似的问题,建议使用重塑功能,但我无法让它工作。
要重现我的起始数据框:
conversion.id<-c("1", "2", "3")
interaction.num<-c("1","1","1")
interaction.num2<-c("2","2","2")
conversion.id<-as.data.frame(conversion.id)
interaction.num<-as.data.frame(interaction.num)
interaction.num2<-as.data.frame(interaction.num2)
conversion<-c(rep("1",3))
conversion<-as.data.frame(conversion)
df<-cbind(conversion.id,interaction.num, interaction.num2, conversion)
names(df)[3]<-"interaction.num"
数据框如下所示:
当我运行以下融化功能时:
melt.df<-melt(df,id="conversion.id")
它删除了interaction.num == 2 列,看起来像这样:
我想要的数据框如下:
我看到了下面的帖子,但我对重塑功能不太熟悉,无法让它工作。
为了增加一层复杂性,我正在寻找一种有效的方法。我需要在大约 1M 行的数据框中执行此操作,其中许多列标记相同。
任何建议将不胜感激!