重命名r中数据帧中多个列的多个值(按文件名重命名文件号)



我有一个提供文件编号的数据框架。但是我想用我在另一个向量/矩阵中的文件名改变文件编号。怎么用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])

最新更新