我有一个提供文件编号的数据框架。但是我想用我在另一个向量/矩阵中的文件名改变文件编号。怎么用r表示呢?
我在下面给出一个可重复的矩阵:
> ash<-data.frame(matrix(c(4,2,NA,9,3,8,NA,NA,1,5,6,7),nrow=3, byrow=TRUE))
> ash2<-matrix(c("jegjgqe","hdd","odew","dhjs","ddj","hdiwhek","dij","jsosaeo"))
> ash
X1 X2 X3 X4
1 4 2 NA 9
2 3 8 NA NA
3 1 5 6 7
我想要的是一个矩阵,其中文件编号将被ash2矩阵/向量的名称所取代。就像值1将是"jegjgqe"一样,值2将是"hdd"等等......有没有办法一次用这些名称替换所有的值?
我们可以在一个向量/矩阵上使用索引(matrix
是一个具有dim属性的向量
ash[] <- ash2[as.matrix(ash)]
与产出
ash
X1 X2 X3 X4
1 dhjs hdd <NA> <NA>
2 odew jsosaeo <NA> <NA>
3 jegjgqe ddj hdiwhek dij
或者使用lapply
遍历data.frame的列,并根据索引将值替换为'ash2'值
ash[] <- lapply(ash, function(x) ash2[x])