在R中,是否有一种方法可以将一个数据帧中的列与另一数据帧中的值重新编码?

格兰特

我对使用R还是比较陌生,我不确定如何解决此问题。任何帮助或建议,不胜感激!!!

我的问题是我正在使用两个数据帧,并且需要使用第二个数据帧中的值重新编码第一个数据帧。第一个数据帧(df1)包含从受访者到调查的数据,另一个数据帧(df2)是df1的数据字典。

数据如下所示:

df1 <-  data.frame(a = c(1,2,3), 
            b = c(4,5,6), 
            c = c(7,8,9))

df2 <- data.frame(columnIndicator = c("a","a","a","b","b","b","c","c","c" ),
              df1_value = c(1,2,3,4,5,6,7,8,9),
              new_value = c("a1","a2","a3","b1","b2","b3","c1","c2","c3"))

到目前为止,我可以通过执行以下操作手动重新编码df1以获得预期的输出:

df1 <- within(df1,{
  a[a==1] <- "a1"
  a[a==2] <- "a2"
  a[a==3] <- "a3"
  b[b==4] <- "b4"
  b[b==5] <- "b5"
  b[b==6] <- "b6"
  c[c==7] <- "c7"
  c[c==8] <- "c8"
  c[c==9] <- "c9"
})

但是,我的真实数据集大约有42列需要重新编码,而该方法需要花费一些时间。R中还有另一种方法可以将df1中的值重新编码为df2中的值吗?

谢谢!

张Zhang

只需将形状变形一下即可。

library(data.table)
df1 <-  data.frame(a = c(1,2,3), 
                   b = c(4,5,6), 
                   c = c(7,8,9))

df2 <- data.frame(columnIndicator = c("a","a","a","b","b","b","c","c","c" ),
                  df1_value = c(1,2,3,4,5,6,7,8,9),
                  new_value = c("a1","a2","a3","b4","b5","b6","c7","c8","c9"),stringsAsFactors = FALSE)



setDT(df1)
setDT(df2)

df1[,ID:=.I]

ldf1 <- melt(df1,measure.vars = c("a","b","c"),variable.name = "columnIndicator",value.name = "df1_value")


ldf1[df2,"new_value":=i.new_value,on=.(columnIndicator,df1_value)]

ldf1
#>    ID columnIndicator df1_value new_value
#> 1:  1               a         1        a1
#> 2:  2               a         2        a2
#> 3:  3               a         3        a3
#> 4:  1               b         4        b4
#> 5:  2               b         5        b5
#> 6:  3               b         6        b6
#> 7:  1               c         7        c7
#> 8:  2               c         8        c8
#> 9:  3               c         9        c9

dcast(ldf1,ID~columnIndicator,value.var = "new_value")
#>    ID  a  b  c
#> 1:  1 a1 b4 c7
#> 2:  2 a2 b5 c8
#> 3:  3 a3 b6 c9

reprex软件包(v0.3.0)创建于2020-04-18

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

有没有一种方法可以过滤一个数据帧以将与另一个数据帧中的值匹配的值保留?

来自分类Dev

有没有一种方法可以从另一个行长不确定的数据帧中动态生成数据帧?

来自分类Dev

使用setDT将一个数据帧中的许多列合并到另一数据帧中

来自分类Dev

如何将一个数据帧中某些列的值与另一数据帧中同一列集的值进行比较?

来自分类Dev

将值从一个数据帧列传递到Pandas中的另一数据帧

来自分类Dev

将一个数据帧中与标签相对应的值乘以另一数据帧中具有相同标签的所有值

来自分类Dev

根据另一个数据帧中的值将数据帧的列相乘

来自分类Dev

是否有一种简单的方法来将数据帧中的唯一数据点配对?

来自分类Dev

是否有一种简单的方法来将数据帧中的唯一数据点配对?

来自分类Dev

将一个数据帧中的id字符替换为另一数据帧中的id字符

来自分类Dev

有没有一种方法可以基于多个数据帧中的操作在R中创建新列?

来自分类Dev

检查一个数据帧是否是另一数据帧的重新排序

来自分类Dev

检查一个数据帧是否是另一数据帧的重新排序

来自分类Dev

R merge()通过一个数据帧中的列名,在另一数据帧中按列名

来自分类Dev

一个数据框中的列总和基于另一数据帧的行值

来自分类Dev

当它们共享一个列值时,是否有一种方法可以将数据压缩到Pandas DataFrame的一行中?

来自分类Dev

检查是否可以在R中的另一个数据帧中找到一个数据帧的值

来自分类Dev

在R中,是否有一种方法可以在仅提取部分列名的同时收集数据帧?

来自分类Dev

根据条件查找一个数据帧中的列等于另一数据帧的情况

来自分类Dev

组合两个数据帧,以便一个数据帧中的值成为另一数据帧中的标头

来自分类Dev

组合两个数据帧,以便一个数据帧中的值成为另一数据帧中的标头

来自分类Dev

在Pandas中将一个数据帧中的行转置为另一数据帧中的列的最佳方法?

来自分类Dev

R-将一个数据帧中的值与另一个数据帧中的多个值进行匹配

来自分类Dev

查看一个数据帧行中的所有值是否存在于另一个数据帧中

来自分类Dev

合并数据帧,以便将一个数据帧中的值插入到另一个数据帧中匹配的行号中

来自分类Dev

一个数据帧的聚合数据按键分组在另一数据帧中

来自分类Dev

从列中的另一个数据帧返回具有不同值的行

来自分类Dev

numpy中是否有一种方法可以验证一个数组是否包含在另一个数组中?

来自分类Dev

R替换另一个数据帧中的多列值

Related 相关文章

  1. 1

    有没有一种方法可以过滤一个数据帧以将与另一个数据帧中的值匹配的值保留?

  2. 2

    有没有一种方法可以从另一个行长不确定的数据帧中动态生成数据帧?

  3. 3

    使用setDT将一个数据帧中的许多列合并到另一数据帧中

  4. 4

    如何将一个数据帧中某些列的值与另一数据帧中同一列集的值进行比较?

  5. 5

    将值从一个数据帧列传递到Pandas中的另一数据帧

  6. 6

    将一个数据帧中与标签相对应的值乘以另一数据帧中具有相同标签的所有值

  7. 7

    根据另一个数据帧中的值将数据帧的列相乘

  8. 8

    是否有一种简单的方法来将数据帧中的唯一数据点配对?

  9. 9

    是否有一种简单的方法来将数据帧中的唯一数据点配对?

  10. 10

    将一个数据帧中的id字符替换为另一数据帧中的id字符

  11. 11

    有没有一种方法可以基于多个数据帧中的操作在R中创建新列?

  12. 12

    检查一个数据帧是否是另一数据帧的重新排序

  13. 13

    检查一个数据帧是否是另一数据帧的重新排序

  14. 14

    R merge()通过一个数据帧中的列名,在另一数据帧中按列名

  15. 15

    一个数据框中的列总和基于另一数据帧的行值

  16. 16

    当它们共享一个列值时,是否有一种方法可以将数据压缩到Pandas DataFrame的一行中?

  17. 17

    检查是否可以在R中的另一个数据帧中找到一个数据帧的值

  18. 18

    在R中,是否有一种方法可以在仅提取部分列名的同时收集数据帧?

  19. 19

    根据条件查找一个数据帧中的列等于另一数据帧的情况

  20. 20

    组合两个数据帧,以便一个数据帧中的值成为另一数据帧中的标头

  21. 21

    组合两个数据帧,以便一个数据帧中的值成为另一数据帧中的标头

  22. 22

    在Pandas中将一个数据帧中的行转置为另一数据帧中的列的最佳方法?

  23. 23

    R-将一个数据帧中的值与另一个数据帧中的多个值进行匹配

  24. 24

    查看一个数据帧行中的所有值是否存在于另一个数据帧中

  25. 25

    合并数据帧,以便将一个数据帧中的值插入到另一个数据帧中匹配的行号中

  26. 26

    一个数据帧的聚合数据按键分组在另一数据帧中

  27. 27

    从列中的另一个数据帧返回具有不同值的行

  28. 28

    numpy中是否有一种方法可以验证一个数组是否包含在另一个数组中?

  29. 29

    R替换另一个数据帧中的多列值

热门标签

归档