R 按单元格内容、行索引合并表
我想读出矩阵中每个(唯一)值的列号,并将该值添加到新表中,新表中的原始单元格值作为新矩阵中的行名 下面是一个最小工作示例(MWE): 许多(每人一个)矩阵中的一个R 按单元格内容、行索引合并表,r,matrix,match,lookup,R,Matrix,Match,Lookup,我想读出矩阵中每个(唯一)值的列号,并将该值添加到新表中,新表中的原始单元格值作为新矩阵中的行名 下面是一个最小工作示例(MWE): 许多(每人一个)矩阵中的一个 fruit_ranking_thomas <- matrix( c( "NA", "Pear", "Banana", "Strawberry", "Peach", "Rasberry", "Grapefruit", "Orange", "NA", "Apple" ), nrow = 2 ) print(fruit_ra
fruit_ranking_thomas <- matrix(
c(
"NA", "Pear", "Banana", "Strawberry", "Peach", "Rasberry", "Grapefruit", "Orange", "NA", "Apple"
),
nrow = 2
)
print(fruit_ranking_thomas)
[,1] [,2] [,3] [,4] [,5]
[1,] "NA" "Banana" "Peach" "Grapefruit" "NA"
[2,] "Pear" "Strawberry" "Rasberry" "Orange" "Apple"
我也已经有了一个空的矩阵水果\u排名\u聚合
:
fruit_ranking_aggregate <- matrix(
, # empty for now
nrow = 8, # let's say there are 7 fruit
ncol = 3, # let's say there's going to be 3 people
dimnames = list(
c(
"Apple", "Banana", "Grapefruit", "Orange", "Peach", "Pear", "Rasberry", "Strawberry"
),
c("Thomas", "Lisa", "Peter")
)
)
print(fruit_ranking_aggregate)
Thomas Lisa Peter
Apple NA NA NA
Banana NA NA NA
Grapefruit NA NA NA
Orange NA NA NA
Peach NA NA NA
Pear NA NA NA
Rasberry NA NA NA
Strawberry NA NA NA
fruit\u ranking\u aggregate我有一个解决方案可以解决这个问题,但我有一种预感,一定有一种更优雅/聪明的方法可以做到这一点
for (n in rownames(fruit_ranking_aggregate)){
fruit_ranking_aggregate[n,"Thomas"] <- which(fruit_ranking_thomas == n, arr.ind = TRUE, useNames = TRUE)[2]
}
print(fruit_ranking_aggregate)
Thomas Lisa Peter
Apple 5 NA NA
Banana 2 NA NA
Grapefruit 4 NA NA
Orange 4 NA NA
Peach 3 NA NA
Pear 1 NA NA
Rasberry 3 NA NA
Strawberry 2 NA NA
for(行名中的n(水果排名聚合)){
水果排名聚合[n,“Thomas”]当我在做时,我也不能让StackExchange格式对第一个表起作用。该死。
for (n in rownames(fruit_ranking_aggregate)){
fruit_ranking_aggregate[n,"Thomas"] <- which(fruit_ranking_thomas == n, arr.ind = TRUE, useNames = TRUE)[2]
}
print(fruit_ranking_aggregate)
Thomas Lisa Peter
Apple 5 NA NA
Banana 2 NA NA
Grapefruit 4 NA NA
Orange 4 NA NA
Peach 3 NA NA
Pear 1 NA NA
Rasberry 3 NA NA
Strawberry 2 NA NA