我有一个充满 XML 文件的目录,我想将这些文件合并到一个数据框中。XML 文件是 ODK 调查的输出,仅包含受访者未留空的变量的测量值。导入、取消列出和合并时,询问问题的原始顺序会丢失。我有(我可以制作)一个数据框,其中一列中的问题和第二列中的顺序。如何使用该数据框重新排序结果数据框?
这是一个示例工作流程:
library(XML)
filenames = list.files(,recursive=TRUE)
a = xmlToList(filenames[1])
b = data.frame(t(unlist(a)))
for (i in 2:length(filenames)){
b = xmlToList(filenames[i])
b = data.frame(t(unlist(b)))
a = merge(a,b,all=TRUE)
print(paste("merged ",i))
}
现在是可重现的部分;这是一个示例a
,并且b
:
a = data.frame(v1=2, v5=2, v8=1)
b = data.frame(v1=2, v2=4, v8=3)
m = merge(a,b,all=TRUE)
这给了我:
R> m
v1 v8 v5 v2
1 2 1 2 NA
2 2 3 NA 4
我有(可以制作)一个如下所示的数据框:
orderframe = data.frame(varname=c("v1", "v2", "v5", "v8"),
order = c(1, 2, 5, 8))
如何使用orderframe
对 的列进行排序m
?