R 如何从数据帧B检索数据帧A中数据的标签和值信息

R 如何从数据帧B检索数据帧A中数据的标签和值信息,r,dataframe,label,recode,R,Dataframe,Label,Recode,编辑(为了更精确):我有一个csv文件,其中存储了dataframe a中每个变量的标签和值信息。 在原始数据帧A中有250个变量。出于演示目的,我有: 将数据帧A从250个变量减少到7个变量 将csv文件中的信息作为数据帧B加载,并将变量减少到7个 我的具体问题是: 如何将数据帧B中的信息(例如标签和值)按代码分配给数据帧A中的变量。 到目前为止,我可以通过一个又一个变量来实现我的目标 我希望问题现在更具体一些。我不知道我的思维方式是否完全错了。 如果有任何帮助,我将不胜感激 我的数据帧A:

编辑(为了更精确):我有一个csv文件,其中存储了dataframe a中每个变量的标签和值信息。
在原始数据帧A中有250个变量。出于演示目的,我有:

  • 将数据帧A从250个变量减少到7个变量
  • 将csv文件中的信息作为数据帧B加载,并将变量减少到7个
  • 我的具体问题是: 如何将数据帧B中的信息(例如标签和值)按代码分配给数据帧A中的变量。 到目前为止,我可以通过一个又一个变量来实现我的目标

    我希望问题现在更具体一些。我不知道我的思维方式是否完全错了。 如果有任何帮助,我将不胜感激

    我的数据帧A:

    structure(list(a = c(2L, 7L, 8L, 5L, 10L, 1L, 6L, 9L, 3L, 4L), 
                   b = c("29.06.2016", "18.07.2016", "26.07.2016", "04.08.2016", "12.08.2016", "12.08.2016", "24.08.2016", "26.08.2016", "27.08.2016", "27.08.2016"), 
                   c = c("A", "A", "B", "A", "C", "C", "B", "C","B", "C"), 
                   d = c(4795L, 7242L, 2246L, 7914L, 9910L, 4279L,9174L, 8329L, 8310L, 4799L), 
                   e = c(6L, 10L, 8L, 10L, 11L, 7L, 11L, 2L, 12L, 4L), 
    f = c(1973L, 1933L, 1977L, 1969L, 1960L, 1950L, 1963L, 1967L, 1951L, 1970L), 
                   g = c(2L, 2L, 1L, 2L, 1L, 2L, 2L, 1L, 2L, 1L)), row.names = c(NA, -10L), class = "data.frame")
    
    my dataframe B(标签和值的信息):

    期望输出:


    您可以尝试以下方法。但是,如果您将
    e
    g
    作为前面提到的因素来阅读,会更容易。然后,不需要使用
    as.factor
    转换它们

    library(lubridate)
    
    dfB$label
    dfC <- setNames(dfA, dfB$label)
    
    # use a random date to generate level
    a <- month(ymd(210101) + months(0:11), label = TRUE)
    
    dfC$EEEE <- as.factor(dfC$EEEE) 
    levels(dfC$EEEE) <- a
    
    
    dfC$GGGG <- as.factor(dfC$GGGG)
    levels(dfC$GGGG) <- c("female", "male")
    
    
    库(lubridate)
    dfB$标签
    
    谢谢。这个解决方案是有效的,我知道这样一个解决方案。不过,我感谢你的努力。原始数据有250多个变量,我尝试为每个变量自动执行。一种查找表等。。。。我投赞成票。这是一个有效的解决办法。
    library(lubridate)
    
    dfB$label
    dfC <- setNames(dfA, dfB$label)
    
    # use a random date to generate level
    a <- month(ymd(210101) + months(0:11), label = TRUE)
    
    dfC$EEEE <- as.factor(dfC$EEEE) 
    levels(dfC$EEEE) <- a
    
    
    dfC$GGGG <- as.factor(dfC$GGGG)
    levels(dfC$GGGG) <- c("female", "male")