第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時綁定郵箱和手機(jī)立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

如何使用變量來指定ggram中的列名

如何使用變量來指定ggram中的列名

臨摹微笑 2019-07-16 10:02:50
如何使用變量來指定ggram中的列名我有個命令ggplot( rates.by.groups, aes(x=name, y=rate, colour=majr, group=majr) )在一個函數(shù)里。但是我希望能夠使用函數(shù)的一個參數(shù)來選擇列作為顏色和組。我想要這樣的東西f <- function( column ) {     ...     ggplot( rates.by.groups, aes(x=name, y=rate, colour= ??? , group=??? ) )}以便由參數(shù)來確定ggg圖中使用的列。例如,對于f(“main”),我們得到的效果是ggplot( rates.by.groups, aes(x=name, y=rate, colour=majr, group=majr) )但是對于f(“性別”),我們得到的效果是  ggplot( rates.by.groups, aes(x=name, y=rate, colour=gender, group=gender) )有些事我試過了:ggplot( rates.by.groups, aes(x=name, y=rate, colour= columnName , group=columnName ) )不起作用。也沒有e <- environment() ggplot( rates.by.groups, aes(x=name, y=rate, colour= columnName , group=columnName ), environment=e )
查看完整描述

3 回答

?
牛魔王的故事

TA貢獻(xiàn)1830條經(jīng)驗(yàn) 獲得超3個贊

你可以用aes_string:

f <- function( column ) {
    ...
    ggplot( rates.by.groups, aes_string(x="name", y="rate", colour= column,
                                        group=column ) )}

只要將列作為字符串傳遞給函數(shù)(f("majr")而不是f(majr))。還請注意,我們更改了其他列,"name""rate"成為弦樂。

如果不管出于什么原因你都不想用aes_string,您可以將其更改為(比較麻煩的):

    ggplot( rates.by.groups, aes(x=name, y=rate, colour= get(column),
                                        group=get(column) ) )


查看完整回答
反對 回復(fù) 2019-07-16
?
智慧大石

TA貢獻(xiàn)1946條經(jīng)驗(yàn) 獲得超3個贊

另一種選擇(ggplot2 > 3.0.0)是使用整齊的評價(jià)代詞。.data將所選變量/列從rates.by.groups數(shù)據(jù)幀

library(ggplot2)theme_set(theme_classic(base_size = 14))# created by @Moody_Mudskipperrates.by.groups <- data.frame(
  name = LETTERS[1:3],
  rate = 1:3,
  mjr = LETTERS[c(4, 4, 5)],
  gender = c("M", "F", "F"))f1 <- function(df, column) {
  gg <- ggplot(df, 
         aes(x = name, 
             y = rate, 
             fill  = .data[[column]], 
             group = .data[[column]])) +
    geom_col() +
    labs(fill = column)
  return(gg)}plot_list <- lapply(list("gender", "mjr"), function(x){ f1(rates.by.groups, x) })plot_list#> [[1]]
#> #> [[2]]
# combine all plotslibrary(egg)ggarrange(plots = plot_list,
          nrow = 2,
          labels = c('A)', 'B)'))

創(chuàng)建于2019年-04-04由Reprex封裝(0.2.1.9000)


查看完整回答
反對 回復(fù) 2019-07-16
  • 3 回答
  • 0 關(guān)注
  • 615 瀏覽

添加回答

舉報(bào)

0/150
提交
取消
微信客服

購課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學(xué)習(xí)伙伴

公眾號

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號