将数据框中的元素替换为另一个数据框中的变量

标签 r

我有一个数据框,其中包含字符元素。我需要通过引用另一个数据框来替换元素。数据框 1 的列名称可以是任何内容,必须在不引用列名称的情况下替换数据。

 data-frame_1                         data-frame_2

Jan-12  Feb-12                       rating  Order
 ab       ac                          ab      1
 ac       ab                          ac      2

apply(data-frame_1,2,function(x){mapvalues(x,data-frame_2$rating,data-frame_2$Order)})

我尝试过使用 apply 函数,但它不起作用。 我正在尝试获取此输出

 data-frame_1                        

Jan-12  Feb-12                       
   1       2                          
   2       1      

最佳答案

一个选项是匹配

df1[] <- lapply(df1, function(x) df2$Order[match(x, df2$rating)])

或者使用sapply

sapply(df1, function(x) df2$Order[match(x, df2$rating)])
#     Jan-12 Feb-12
#[1,]      1      2
#[2,]      2      1

数据

df1 <- structure(list(`Jan-12` = c("ab", "ac"), `Feb-12` = c("ac", "ab"
)), class = "data.frame", row.names = c(NA, -2L))

df2 <- structure(list(rating = c("ab", "ac"), Order = 1:2), 
class = "data.frame", row.names = c(NA, 
-2L))

关于将数据框中的元素替换为另一个数据框中的变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59170340/

相关文章:

r - 循环从 R 中的维基百科抓取数据

r - 在忽略 dplyr 链中的特定值集时取平均值

将带有两个标题的 csv 读入 data.frame

r - 在 R 中加载/读取数据占用太多内存

r - 我可以使用 optparse 指定强制参数吗

r - 从 R 中的表读取自定义日期时间时出错

python - 如何从图案中打印不匹配的字母

r - 在 R 中按季度和财政年度对数据进行分组的最有效方法

r - 计算某些值的累积和

r - 将星期数转换为日期