我发现许多线程与列名称的矩阵堆叠相关,但是没有任何信息可以帮助解决这个问题。 我有一个像这样的矩阵
Lcover County 8 9 53009 868.935 1171.0050 53055 NA 414.9733 53057 NA 276.5450 53073 706.700 NA
我想创建一个像这样的数据框
County Lcover Value
53009 8 868.935
53009 9 1171.0050
53055 9 414.9733
53057 9 276.5450
53073 8 706.700
有人会建议我,我该怎么做?
提前致谢。
戴文
答案 0 :(得分:0)
Andrie指出,melt()
功能使这简单易行:
x <- read.table(text = "County 8 9
53009 868.935 1171.0050
53055 NA 414.9733
53057 NA 276.5450
53073 706.700 NA ", header = TRUE)
require(reshape2)
melt(x, id.vars = "County", na.rm=TRUE)
County variable value
1 53009 X8 868.9350
4 53073 X8 706.7000
5 53009 X9 1171.0050
6 53055 X9 414.9733
7 53057 X9 276.5450
“X”出现在列的前面,因为R尝试使用make.names()
函数创建有效的列名。在阅读/创建表格时,您可以使用check.names = FALSE
禁用该功能。或者只使用gsub("X","", variable)
从结果列中删除X.如果要在已熔化的data.frame中保留NA值,请更改na.rm = FALSE
函数中的melt()
。