r矩阵列填充不正确

时间:2017-07-13 15:06:33

标签: r matrix

尝试将数据集(sdevDFC)重组为矩阵,将纬度(Lat)作为行名称,使用经度(Lon)作为列名称,然后使用与坐标相对应的值填充矩阵。

stand_dev_m <- matrix(data=sdevDFC$SDev, nrow=length(sdevDFC$Lat), ncol=length(sdevDFC$Lon), byrow=TRUE, dimnames = list(sdevDFC$Lat, sdevDFC$Lon))

列和行名称应按原样显示,但我的数据会填充,以便各自列中的所有值都相同,如 image(不应该是这种情况,因为我的价值观都没有重复过)。

我用byrow = FALSE填充它以查看它是否也发生了(它确实如此),并且我还使用了colnames和rownames而不是dimnames(什么都不做更改)。

非常感谢我对这里可能做错的任何见解 - 对这个平台也是新手,所以如果我错过了指南或其他类似的问题,我会道歉

1 个答案:

答案 0 :(得分:0)

示例数据:

df <- data.frame(LON=1:5,
                 LAT=11:15,
                 VAL=letters[1:5],
                 stringsAsFactors=F)

您可以尝试以下方法:

rn <- df$LON            # Save what-will-be-rownames
df1 <- df %>% 
         spread(LAT,VAL,fill=NA) %>%
         select(-LON) %>%
         setNames(., df$LAT)
rownames(df1) <- rn

输出

    11   12   13   14   15
1    a <NA> <NA> <NA> <NA>
2 <NA>    b <NA> <NA> <NA>
3 <NA> <NA>    c <NA> <NA>
4 <NA> <NA> <NA>    d <NA>
5 <NA> <NA> <NA> <NA>    e