首页 > 解决方案 > R:将行转换为列并将值分配给相应的列

问题描述

我是 R 新手,我正在努力解决以下问题。

我想将作为国家的行值转换为列,并将列 Year_2000 中的相应值分配给它。谢谢您的帮助!我附上屏幕截图。

   Country_a <- c("Argentina","China","US","Brazil","France","Germany","Cananda")
  Country_b <- c("Brazil","Mexico","New 
  Zealand","France","Mongolia","China","US")
  Year_2000 <- c(30,54,67,4,7,4,5)
  dataframe <- data.frame(Country_a,Country_b,Year_2000)

这是截图

https://imgur.com/a/kortrEb

标签: r

解决方案


我想您应该考虑将数据结构构建为稀疏矩阵而不是数据框。例如,这可以通过Matrix包来完成。

library(Matrix)
sparse_Matrix_output <- sparseMatrix(i = as.integer(dataframe$Country_a), j = as.integer(dataframe$Country_b), x = dataframe$Year_2000)
colnames(sparse_Matrix_output) = levels(dataframe$Country_b)
rownames(sparse_Matrix_output) = levels(dataframe$Country_a)

这是输出:

sparse_Matrix_output
7 x 7 sparse Matrix of class "dgCMatrix"
          Brazil China France Mexico Mongolia New Zealand US
Argentina     30     .      .      .        .           .  .
Brazil         .     .      4      .        .           .  .
Cananda        .     .      .      .        .           .  5
China          .     .      .     54        .           .  .
France         .     .      .      .        7           .  .
Germany        .     4      .      .        .           .  .
US             .     .      .      .        .          67  .

推荐阅读