0

我正在从一些我想在表格中并排比较的结果文件中读取参数估计值。但我无法将数据框获取到我想要的结构(参数名称、值(文件 1)、值(文件 2))

当我读入文件时,我得到一个宽数据框,其中每个参数位于单独的列中,我想使用melt 将其转换为“长”格式。但这仅给出一列具有值。关于如何在不使用 for 循环的情况下获取多个值列的任何想法?

paraA <- c(1,2)
paraB <- c(6,8)
paraC <- c(11,9)
Source <- c("File1","File2")
parameters <- data.frame(paraA,paraB,paraC,Source)

wrong_table <- melt(parameters, by="Source")
4

2 回答 2

2

你可以melt结合使用cast来得到你想要的。这实际上是预期的使用模式,这就是函数具有它们的名称的原因:

m<-melt(parameters)
dcast(m,variable~Source)
#   variable File1 File2
# 1    paraA     1     2
# 2    paraB     6     8
# 3    paraC    11     9
于 2014-03-01T14:38:55.707 回答
2

将@alexis 的评论转换为答案,转置 ( t()) 几乎可以满足您的需求:

setNames(data.frame(t(parameters[1:3])), parameters[, "Source"])
#       File1 File2
# paraA     1     2
# paraB     6     8
# paraC    11     9

我在setNames上面使用了一个步骤来方便地重命名结果data.frame

于 2014-03-01T15:36:58.550 回答