R:将行转换为列并将值分配给相应的列

时间:2019-03-22 22:05:02

标签: r

我是R的新手,并且正为以下问题苦苦挣扎。

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

   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

1 个答案:

答案 0 :(得分:0)

我想您应该考虑将数据结构构建为稀疏矩阵而不是数据框。例如,可以使用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  .