1

我是 R 新手,试图按组探索我的变量,我正在使用 for 循环在 expss 下传递所有适合的变量名称。

这是一个可重现的示例:


    require(expss)
    require(dplyr)
    colnoms <- as.data.frame(HairEyeColor) %>%  names(.)
    expss_digits(2)

    for (i in colnoms){      

    as.data.frame(HairEyeColor) %>%
        tab_cells(get(i)) %>%
        tab_cols(Eye) %>% 
        tab_stat_cpct() %>%
        tab_last_sig_cpct() %>% 
        tab_pivot() %>%
        set_caption(i) %>% 
        htmlTable() %>% 
        print()  
    }

我希望输出中的变量名称(头发,眼睛,颜色),但我只得到“get(i)”。感谢您的任何建议

4

1 回答 1

0

之后get我们就无法知道原来的变量名了。显示原始名称的最简单方法是将变量名称设置为标签:

require(expss)
data(HairEyeColor)
HairEyeColor <- as.data.frame(HairEyeColor)
colnoms <-  names(HairEyeColor)

expss_digits(2)

for (i in colnoms){      
    # if we don't have label we assign name as label
    if(is.null(var_lab(HairEyeColor[[i]])))  var_lab(HairEyeColor[[i]]) = i
    HairEyeColor %>%
        tab_cells(get(i)) %>%
        tab_cols(Eye) %>% 
        tab_stat_cpct() %>%
        tab_last_sig_cpct() %>% 
        tab_pivot() %>%
        set_caption(i) %>% 
        htmlTable() %>% 
        print()  
}
于 2019-08-22T14:49:46.300 回答