0

値が収集された の変数を作成するために使用mutate()したdata.frameを使用しようとしています。Google と StackOverflow を検索しましたが、適切な回答が見つかりませんでした。私の調査により、標準的な評価が必要かもしれないと考えるようになりました。gather()label()variable

最小限の再現可能な例を次に示します。

# Packages
library(dplyr)
library(Hmisc)
library(tidyr)
library(lazyeval)

df <- mtcars %>% 
tbl_df() %>%
slice(1)

label(df$mpg) <- "Miles per gallon"
label(df$cyl) <- "Cylinders"

df %>% 
select(mpg, cyl) %>%
gather(variable, value) %>% 
mutate_(.dots = interp(~attr(df$x, "label"), x = variable))

このコードは以下を生成します。

# A tibble: 2 × 3
  variable value `attr(df$mpg, "label")`
     <chr> <dbl>                   <chr>
1      mpg    21        Miles per gallon
2      cyl     6        Miles per gallon

これは明らかに のラベルのみを取得していmpgます。

私の目標は、次のようなものを持つことです:

# A tibble: 2 × 3
      variable value `attr(df$variable, "label")`
         <chr> <dbl>                   <chr>
    1      mpg    21        Miles per gallon
    2      cyl     6        Cylinders
4

1 に答える 1

1

これはどうですか?

df %>% 
    select(mpg, cyl) %>%
    gather(variable, value) %>% 
    mutate(labels = label(df)[variable])

# A tibble: 2 × 3
  variable value           labels
     <chr> <dbl>            <chr>
1      mpg    21 Miles per gallon
2      cyl     6        Cylinders
于 2016-11-02T21:34:22.300 に答える