我在reshape()函数方面遇到一些问题。重塑后,它会将所有变量名称更改为“ value.var 1”。

我用来重塑的代码是:

test<- reshape(cdc_city, idvar= "site", timevar="variable",
               direction="wide", new.row.names=FALSE)


我猜我使用的“ new.row.names = FALSE”部分错误。我试图用FALSE代替NULL,但这也没有用。

我的目标是按以下方式转换数据集:

site    variable    value
site 1  var 1       4
site 1  var 2       7
site 1  var 3       2
site 1  var 4       6
site 1  var 5       3
site 2  var 1       89
site 2  var 2       43
site 2  var 3       12
site 2  var 4       54
site 2  var 5       23
site 3  var 1       76
site 3  var 2       62
site 3  var 3       13
site 3  var 4       43
site 3  var 5       23


变成这样的数据集:

site    var 1    var 2    var 3    var 4    var 5
1       4        7        2        6        3
2       89       43       12       54       23
3       76       62       13       43       23


如果有人知道如何摆脱“价值”。出现在我的变量名的开头,那太好了!或者,如果有更好的代码可以使用,我也很乐意。

谢谢,

提摩太

最佳答案

我建议您改用reshape2包-使用meltdcast比内置的reshape()容易得多:

library(reshape2)
dcast(cdc_city, site~variable, mean)
    site var 1 var 2 var 3 var 4 var 5
1 site 1     4     7     2     6     3
2 site 2    89    43    12    54    23
3 site 3    76    62    13    43    23

关于r - 如何防止reshape()更改变量名称,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/11936535/

10-12 15:35