整合營銷服務商

          電腦端+手機端+微信端=數據同步管理

          免費咨詢熱線:

          男朋友老是說自己R語言很6,快來用這40道題目檢測他

          數據文摘作品,轉載要求見文末

          作者 | NSS

          編譯 | 張伯楠,劉云南

          弋心,衛青,寧云州

          R語言是數據科學領域最流行的語言之一。如果你真想從事數據科學事業,那你要么已經會用R語言要么正在學習它。R語言同樣是一個擁有廣泛的統計和數據科學庫的生態系統。為了幫助數據科學家測試他們的R語言能力,我們為DataFest 2017設計了一部分技能測試題。

          超過1500人注冊了這項考試并有接近500人完成了測試。下圖是不同測試者的成績分布:

          下面是關于成績分布的一些統計數據:

          平均分:16.69

          分數中值:19

          眾數:0

          下面是這四十道題目的問題和答案,如果錯過了測驗,你還有機會完成這四十道題目,看看自己在R語言上究竟處于什么水平。

          友情提示:在使用本文代碼之前,請先清除格式,或查看本文原文網址復制使用。

          祝你學習愉快!

          問題與答案

          1

          請看下列函數

          f <- function(x) {

          g <- function(y) {

          y + z

          }

          z <- 4

          x + g(x)

          }

          1)如果我們執行下列命令(寫在下一行),輸出結果會是什么?

          z <- 10

          f(4)

          A) 12

          B) 7

          C) 4

          D) 16

          答案:(A)

          R語言的作用域規則(scoping rule)會使z<-4的條件優先于z<-10。因此,g(x)會返回8,所以A選項是正確答案。

          2

          鳶尾屬植物(iris)數據集包括多種具有不同萼片(sepal)長度的花,如多剛毛類(setosa)、雜色類(versicolor)和維爾吉尼卡(virginica)等。現在,我們想分析所有鳶尾屬花的萼片長度分布。其中之一的解決方法是通過下面所示的圖可視化它們之間的關系。

          下列哪個函數能夠用于創建上文所示的圖?

          A) xyplot()

          B) stripplot()

          C) barchart()

          D) bwplot()

          答案:(B)

          上文所繪是條型圖而選項A、C、D會分別產生散點圖、柱狀圖以及箱線圖。因此,B選項是正確答案。

          3

          Alpha125.50
          Beta235.61
          Beta212.030
          Beta211.300
          Alpha265.461

          文件名:Dataframe.csv

          3)下列命令哪一項可以在一個數據框架中正確讀取上述csv文件的全部五行內容?

          A) csv(‘Dataframe.csv’)

          B) csv(‘Dataframe.csv’,header=TRUE)

          C) dataframe(‘Dataframe.csv’)

          D) csv2(‘Dataframe.csv’,header=FALSE,sep=’,’)

          答案:(D)

          第一個和第二選項會將數據第一行讀取為變量名。第三個命令不存在,因此,選項D是正確答案。

          4

          Excel文件格式是最常用的儲存數據文件格式之一。了解如何將Excel文件轉化為R語言格式非常重要。下面是一個Excel文件,其中數據儲存在第三個工作表中。

          Alpha125.50
          Beta235.61
          Beta212.030
          Beta211.300
          Alpha265.461

          文件名:Dataframe.xlsx

          下列哪行代碼可以從Excel工作表3中讀取數據?

          A) Openxlsx::read.xlsx(“Dataframe.xlsx”,sheet=3,colNames=FALSE)

          B) Xlsx::read.xlsx(“Dataframe.xlsx”,sheetIndex=3,header=FALSE)

          C)XLConnect::readWorksheetFromFile(“Dataframe.xlsx”,sheet=3,header=FALSE)

          D)All of the above

          答案:(D)

          上述的全部選項都是正確的,它們采用了不同的方法來將Excel文件讀取入R語言,且都正確讀取了文件。因此,D選項是正確答案。

          5

          A10Sam
          B20Peter
          C30Harry
          D!?
          E50Mark

          文件名:Dataframe.csv

          5)上述csv文件中缺失的值被感嘆號(“!”)和問號(“?”)所代替。下列哪行代表可以正確將上述csv文件讀取進R語言?

          A) csv(‘Dataframe.csv’)

          B) csv(‘Dataframe.csv’,header=FALSE, sep=’,’,na.strings=c(‘?’))

          C) csv2(‘Dataframe.csv’,header=FALSE,sep=’,’,na.strings=c(‘?’,’!’))

          D) dataframe(‘Dataframe.csv’)

          Solution: (C)

          選項A不能在R語言中把“?” 和“!”讀取為“NA”;選項B只能把“?”讀取為“NA”而“!”不能;選項4并不存在。因此,選項C是正確答案。

          6

          Column 1Column 2Column 3
          Row 115.514.1269.5
          Row 218.656.2352.4
          Row 321.447.0263.21
          Row 436.156.6336.12

          文件名:Dataframe.csv

          上述csv文件既有行名稱又有列名稱。下面哪行代碼能夠正確地將該csv文件讀入R語言?

          A) delim(‘Train.csv’,header=T,sep=’,’,row.names=TRUE)

          B) csv2(‘Train.csv’,header=TRUE, row.names=TRUE)

          C) dataframe(‘Train.csv’,header=TRUE,sep=’,’)

          D) csv(‘Train.csv’,,header=TRUE,sep=’,’)

          答案:(D)

          A和B選項中的row.names參數僅僅引用有包含實際行名稱的矢量本身或者一個指向包含行名稱的列值數字,而并非一個有效的邏輯值。選項C并不存在。因此,D選項是正確答案。

          7

          Column 1Column 2Column 3
          Row 115.514.1269.5
          Row 218.656.2352.4
          Row 321.447.0263.21
          Row 436.156.6336.12

          文件名:Dataframe.csv

          下列哪行代碼將只讀取csv文件中的前兩行?

          A) csv(‘Dataframe.csv’,header=TRUE,row.names=1,sep=’,’,nrows=2

          B) csv2(‘Dataframe.csv’,row.names=1,nrows=2)

          C) delim2(‘Dataframe.csv’,header=T,row.names=1,sep=’,’,nrows=2)

          D) dataframe(‘Dataframe.csv’,header=TRUE,row.names=1,sep=’,’,skip.last=2)

          答案:(A)

          因為在csv2函數中的默認分隔符是“;”,而csv文件是“,”,B選項將不能正確讀取csv文件,選項C使用了錯誤的參數值,選項D不存在。因此,選項A是正確答案。

          8

          Dataframe1Feature1Feature2Feature3Feature4A100025.510B200035.534C300045.578D400055.53Dataframe2Feature1Feature2Feature3E500065.5F600075.5G700085.5H800095.5

          上圖為兩個數據框,數據1和數據2。

          下列哪行代碼可以執行出下述結果?

          Feature1Feature2Feature3
          A100025.5
          B200035.5
          C300045.5
          D400055.5
          E500065.5
          F600075.5
          G700085.5
          H800095.5

          A) merge(dataframe[,1:3],dataframe2)

          B) merge(dataframe1,dataframe2)[,1:3]

          C) merge(dataframe1,dataframe2,all=TRUE)

          D) Both 1 and 2

          E) All of the above

          答案:(D)

          C選項會導致融合后的數據框中包含feature 4,而這不是我們想要的結果。因此,D選項是正確答案。

          9

          V1V2
          1121.5461
          25161351
          34516918
          4613112
          5112.36230
          625.231456
          712457

          dataframe

          R語言中已讀取了一個數據集并存儲在變量“dataframe”中。下列哪行代碼可以實現整個數據集的總結(平均數、中位數、眾數)?

          A) summary(dataframe)

          B) stats(dataframe)

          C) summarize(dataframe)

          D) summarise(dataframe)

          E) None of the above

          答案:(E)

          A選項只會給出平均值和中位數,而不會給出眾數。B,C,D選項同樣不能提供所需統計信息。因此,E選項是正確答案。

          10

          R語言讀取了一數據集并存儲在變量“dataframe”中。缺失值以NA表示。

          A10Sam
          BNAPeter
          C30Harry
          D40NA
          E50Mark

          dataframe

          下列哪行代碼將不能給出每一列的缺失值?

          A) colSums(is.na(dataframe))

          B) apply(is.na(dataframe),2,sum)

          C) sapply(dataframe,function(x) sum(is.na(x))

          D) table(is.na(dataframe))

          答案:(D)

          D選項將給出缺失值的總數而非每列單獨給出。因此,D選項是正確答案。

          11

          應用單變量分析檢查數據中的缺失值及其分布是數據分析流程中的重要步驟之一。下列是一個數據集,我們希望能為“Value”變量繪制柱狀圖。

          ParameterStateValueDependents
          AlphaActive502
          BetaActive455
          BetaPassive250
          AlphaPassive210
          AlphaPassive261
          BetaActive302
          BetaPassive180

          dataframe

          下列哪個命令能夠幫助我們完成任務?

          A) hist(dataframed$Value)

          B) ggplot2::qplot(dataframed$Value,geom=”Histogram”)

          C)ggplot2::ggplot(data=dataframed,aes(dataframe$Value))+geom_histogram()

          D) All of the above

          答案:(D)

          所有給出選項都可以繪制柱狀圖并可以查看數據的偏度。

          12

          ParameterStateValueUsage
          AlphaActive500
          BetaActive451
          BetaPassive250
          AlphaPassive210
          AlphaPassive261
          BetaActive301
          BetaPassive180

          諸如XGBOOST等算法只對數值數據有效。在這種情況下,數據集中的分類變量將先被轉化為虛擬變量,其可以展示數據集中某個分類是否存在。比如,當對“Parameter”項數據創建虛擬變量后,數據集顯示如下。

          Parameter_AlphaParameter_BetaStateValueUsage
          10Active500
          01Active451
          01Passive250
          10Passive210
          10Passive261
          01Active301
          01Passive180

          下面中的哪個命令能實現這個功能?

          A) dummies:: dummy.data.frame(dataframe,names=c(‘Parameter’))

          B) dataframe$Parameter_Alpha=0

          dataframe$Gende_Beta=0

          dataframe$Parameter_Alpha[which(dataframe$Parameter==’Alpha’)]=1

          dataframe$Parameter_Beta[which(dataframe$Parameter==’Alpha’)]=0

          dataframe$Parameter_Alpha[which(dataframe$Parameter==’Beta’]=0

          dataframe$Parameter_Beta[which(dataframe$Parameter==’Beta’]=1

          C) contrasts(dataframe$Parameter)

          D)A和B

          答案:D

          C選項會將Parameter列的值變成兩種類型但不會進行獨熱編碼(one hot encoding)。因此,選項D是正確選擇。

          13

          Column1Column2Column3Column4Column5Column6
          Name1Alpha1224540Alpha
          Name2Beta1632511Beta
          Name3Alpha52104320Gamma
          Name4Beta3672841Delta
          Name5Beta4590320Phi
          Name6Alpha1224120Zeta
          Name7Beta3264641Sigma
          Name8Alpha4284540Mu
          Name9Alpha56112311Eta

          以上為名為dataframe的變量。

          我們想計算數據表中第二列和第三列之間的相關性,下面代碼中的哪個能實現這個目的?

          A) corr(dataframe$column2,dataframe$column3)

          B) (cov(dataframe$column2,dataframe$column3))/(var(dataframe$column2)*sd(dataframe$column3))

          C)

          (sum(dataframe$Column2*dataframe$Column3)- (sum(dataframe$Column2)*sum(dataframe$Column3)/nrow(dataframe)))/(sqrt((sum(dataframe$Column2*dataframe$Column2)-(sum(dataframe$Column2)^3)/nrow(dataframe))* (sum(dataframe$Column3*dataframe$Column3)-(sum(dataframe$Column3)^2)/nrow(dataframe))))

          D)以上都不是

          答案:(D)

          在選項A中,corr是錯誤的函數寫法。實際的計算相關性的函數寫法是:cor。在選項B中,分母應該是標準差而不是方差。相似地,選項C中的公式是錯誤的。因此,選項D是正確選擇。

          14

          ParameterStateValueDependents
          AlphaActive502
          BetaActive455
          BetaPassive250
          AlphaPassive210
          AlphaPassive261
          BetaActive302
          BetaPassive180

          以上為名為dataframe的變量。

          上述數據集已經加載進了你的R運行空間中,變量名為“dataframe”,第一行代表列名稱。以下哪個代碼將僅選擇參數為Alpha的行?

          A) subset(dataframe, Parameter=’Alpha’)

          B) subset(dataframe, Parameter==’Alpha’)

          C) filter(dataframe,Parameter==’Alpha’)

          D) B和C

          E) 上面全部

          答案:(D)

          A選項中,應該用等值運算符取代賦值運算符,因此選項D正確。

          15

          以下哪個函數用于以電子表格格式觀察數據集?

          A) disp()

          B) View()

          C) seq()

          D) 以上全部

          答案:(B)

          選項B是采用電子表格形式查看數據集的唯一選項。因此選項B是正確答案。

          16

          下面的數據表存儲在一個名字為“data”的變量中。

          AB
          1Right
          2Wrong
          3Wrong
          4Right
          5Right
          6Wrong
          7Wrong
          8Right

          data

          設定B是一個分類變量,我們需要為每一個分類級別畫一個箱線圖。以下哪一個命令能幫助我們實現這個功能?

          A) boxplot(A,B,data=data)

          B) boxplot(A~B,data=data)

          C) boxplot(A|B,data=data)

          D) 以上都不是

          答案(B)

          R中畫箱線圖的函數要求公式中要有分類因素,通過這些分類因素繪制不同的箱線圖。因此選項B是正確的答案。

          17

          下面命令中的哪一個能把繪圖窗口分成4×3的窗口?同時繪圖逐列輸入窗口。

          A) par(split=c(4,3))

          B) par(mfcol=c(4,3))

          C) par(mfrow=c(4,3))

          D) par(col=c(4,3))

          答案:(B)

          mfcol命令參數能保證圖像逐列輸入繪圖窗口。因此,選項B是正確答案。

          18

          一個數據表變量 “df” 具有如下數據:

          Dates

          2017-02-28

          2017-02-27

          2017-02-26

          2017-02-25

          2017-02-24

          2017-02-23

          2017-02-22

          2017-02-21

          我們希望把它讀取成如下格式:

          28 Tuesday Feb 17

          27 Monday Feb 17

          26 Sunday Feb 17

          25 Saturday Feb 17

          24 Friday Feb 17

          23 Thursday Feb 17

          22 Wednesday Feb 17

          21 Tuesday Feb 17

          下面命令中的哪些(個)能產生期望的輸出?

          A) format(df,”%d %A %b %y”)

          B) format(df,”%D %A %b %y”)

          C) format(df,”%D %a %B %Y”)

          D) 以上都不是

          答案: (D)

          以上的選項都不能產生期望的輸出。因此選項D是正確答案。

          19

          下列哪個命令能將數據表“table”的第二列名稱由alpha改成beta

          A) colnames(table)[2]=’beta’

          B) colnames(table)[which(colnames==’alpha’)]=’beta’

          C) setnames(table,’alpha’,’beta’)

          D) 以上所有

          答案: (D)

          上面的選項都是重命名數據表中列名稱的不同方法,因此,選項D是正確答案。

          20

          R運行中的大部分工作都使用系統內存,如果同時采用大的數據集,當R的工作空間不能保證所有的R對象都保持在內存中時問題就出現了。在這樣的情況下,移除無用的對象是一種解決方法。

          下面命令中的哪個或哪些可以從工作空間中移除R對象或變量“santa”?

          A) remove(santa)

          B) rm(santa)

          C) 上面全部

          D) 都不是

          答案 : (C)

          remove 和 rm,都能用于清理工作空間。因此選項C是正確答案。

          21

          “dplyr”是R中最流行的工具包之一,它包括5個核心數據處理函數。下面選項中的哪一個不是dplyr中的核心函數?

          A) select()

          B) filter()

          C) arrange()

          D) summary()

          答案: (D)

          summary 是R語言基礎工具包中的函數而不是dplyr中的函數。

          22

          在特征選擇過程(feature selection)中使用下面的數據表(名稱為table),列1和列2已經證明影響不顯著。因此我們不會把這兩個特性加入到我們的預測模型中。

          Column1Column2Column3Column4Column5Column6
          Name1Alpha1224540Alpha
          Name2Beta1632511Beta
          Name3Alpha52104320Gamma
          Name4Beta3672841Delta
          Name5Beta4590320Phi
          Name6Alpha1224120Zeta
          Name7Beta3264641Sigma
          Name8Alpha4284540Mu
          Name9Alpha56112311Eta

          table

          下面命令中的哪些(個)能選擇“table”中列3到列6中的所有行?

          A) dplyr::select(table,Column3:Column6)

          B) table[,3:6]

          C) subset(table,select=c(‘Column3’,’Column4’,’Column5’,’Column6’))

          D) 以上全部

          答案: (D)

          選項A、B和C都是不同的選取列的方法,所以選項D是正確答案。

          23

          Column1Column2Column3Column4Column5Column6
          Name1Alpha1224540Alpha
          Name2Beta1632511Beta
          Name3Alpha52104320Gamma
          Name4Beta3672841Delta
          Name5Beta4590320Phi
          Name6Alpha1224120Zeta
          Name7Beta3264641Sigma
          Name8Alpha4284540Mu
          Name9Alpha56112311Eta

          以上為變量名為table的數據表。

          下面哪個(些)命令會選取列1中帶有“alpha”值的行,同時選取列4中數值小于50的項?這個數據表存儲在名為“table”的變量中。

          A) dplyr::filter(table,Column1==’Alpha’, Column4<50)

          B) dplyr::filter(table,Column1==’Alpha’ & Column4<50)

          C) 以上全部

          D) 以上都不是

          答案: (A)

          dplyr中的filter函數使用“,”來添加條件,而不是“&”。因此,選項A是正確答案。

          24

          Column1Column2Column3Column4Column5Column6
          Name1Alpha1224540Alpha
          Name2Beta1632511Beta
          Name3Alpha52104320Gamma
          Name4Beta3672841Delta
          Name5Beta4590320Phi
          Name6Alpha1224120Zeta
          Name7Beta3264641Sigma
          Name8Alpha4284540Mu
          Name9Alpha56112311Eta

          以上為變量名為table的數據表。

          下面代碼中的哪些(個)能把數據表基于列2進行升序排列,同時對列3進行降序排列?

          A) dplyr::arrange(table,desc(Column3),Column2)

          B) table[order(-Column3,Column2),]

          C) 以上全部

          D) 以上都不是

          答案: (C)

          order和arrange函數都能用于在R中對列進行分類。因此選項C是正確答案。

          25

          處理字符串數據(string)是文本分析的一個重要組成部分,當創建參數符號或其它符號時,分割字符串經常是一項常用任務。下面命令行的輸出是什么?

          A<-paste("alpha","beta","gamma",sep=" " )

          B<-paste("phi","theta","zeta",sep="")

          parts<-strsplit(c(A,B),split=” ”)

          parts[[1]][2]

          A) alpha

          B) beta

          C) gamma

          D) phi

          E) theta

          F) zeta

          答案 : (B)

          c(A.B) 將合并 A=”alpha beta gamma” 和 B=”phithetazeta” 并將其通過空格隔開。使用strsplit之后,之前合成的字符串會再次將A,B用空格隔開,分別生成兩個list 。parts[[1]][2]命令旨在顯示第一個list中的第二個元素,是“beta”。因此選項B是正確答案。

          26

          以下命令的輸出是什么?

          grepl(“neeraj”,c(“dheeraj”,”Neeraj”,”neeraj”,”is”,”NEERAJ”))

          A) [FALSE TRUE TRUE FALSE TRUE]

          B) [FALSE TRUE TRUE FALSE FALSE]

          C) [FALSE FALSE TRUE FALSE FALSE]

          D) None of the above

          答案:(C)

          上述命令將檢測集合中的元素是否與前面的“neeraj”完全匹配,因此選項C是正確答案。

          27

          作為從事文本數據工作的數據科學家,我們有時會遇到這樣一些情況,即發現某個不需要的單詞多次出現。以下就是一個此類的字符串。

          A<-c("I can use because thrice in a sentence because because is a special word.")

          A) gsub(“because”,”since”,A)

          B) sub(“because”,”since”,A)

          C) regexec(“because”,”since”,A)

          D) None of the above

          答案:(A)

          sub命令僅替換字符串中第一次出現的單詞,而regexec將返回匹配的位置列表,如果沒有匹配則返回-1。因此,選項A是正確答案。

          28

          28)想象一個通過以下代碼創建的數據框。

          以下哪個命令能夠在這兩列上幫助我們刪除重復行?

          A) df[!duplicated(df),]

          B) unique(df)

          C) dplyr::distinct(df)

          D) All of the above

          答案:(D)

          上述所有答案都是基于這兩列刪除重復行的不同方法。因此,選項D是正確答案。

          29

          分組(grouping)是數據分析中的一項重要活動,它可以幫助我們發現一些有趣的趨勢,這些趨勢在原始數據中可能并不易被發現。

          假設你有一個由以下代碼行創建的數據集。

          table<-data.table(foo=c("A","B","A","A","B","A"),bar=1:6)

          以下哪個命令能幫我們計算出由foo變量分組的bar變量的平均值?

          A) aggregate(bar~foo,table,mean)

          B) table::df[,mean(bar),by=foo]

          C) dplyr::table%>%group_by(foo)%>%summarize(mean=mean(bar))

          D) All of the above

          答案:(D)

          所有上述方法都可用于計算列的分組統計值。因此,選項D是正確答案。

          30

          如果我有兩組矢量x < - c(1,3,5)和y <-c(3,2),那么,cbind(x,y)將產生什么?

          A)一個兩列三行的矩陣

          B)一個三列兩行的矩陣

          C)一個兩列三行的數據框

          D)一個三列兩行的數據框

          答案:(D)

          上述所有選項定義的都是雜亂數據,因此選項D是正確答案。

          31

          下列哪一命令可以把以下名為maverick的數據框轉換為下方顯示的數據框?

          輸入數據 ——“maverick”

          GradeMaleFemale
          A1015
          B2015
          A3035

          輸出數據

          GradeSexCount
          AMale10
          AFemale15
          BMale30
          BFemale15
          AMale30
          AFemale35

          A) tidyr::Gather(maverick, Sex,Count,-Grade)

          B) tidyr::spread(maverick, Sex,Count,-Grade)

          C) tidyr::collect(maverick, Sex,Count,-Grade)

          D) None of the above

          答案:(A)

          Spread命令是將行轉換為列,而在tidyr包或基礎包中沒有collect這一命令。因此,選項A是正確答案。

          32

          下列哪一命令能幫助我們將下列矢量所有Delhi換成Delhi_NCR ?

          C<-c(“Delhi is”,”a great city.”,”Delhi is also”,”the capital of India.”)

          A) gsub(“Delhi”,”Delhi_NCR”,C)

          B) sub(“Delhi”,”Delhi_NCR”,C)

          C) Both of the above

          D) None of the above

          答案:(C)

          雖然sub命令僅能替換第一次出現的模式,但在本情境下,字符串中只出現了一個Delhi。因此,在這種情況下,gsub和sub命令都有效。所以,選項C是正確答案。

          33

          創建一個表示另一變量是否有缺失值的特征數據,有時對于預測模型來說非常有用。

          下方數據框中的某一列有缺失值。

          Feature1Feature2
          BNA
          C30
          D40
          E50

          以下哪個命令將創建一個名為“missing”、值為1的列,其中變量“Feature2”具有缺失值?

          Feature1Feature2Missing
          BNA1
          C300
          D400
          E500

          A)

          dataframe$missing<-0

          dataframe$Missing[is.na(dataframe$Feature2)]<-1

          B)

          dataframe$missing<-0

          dataframe$Missing[which(is.na(dataframe$Feature2))]<-1

          C) Both of the above

          D) None of the above

          答案:(C)

          選項C是正確答案。

          34

          假設有2個數據框“A”和“B”。A有34行,B有46行。運行以下命令后,所得數據框的行數是多少?

          merge(A,B,all.x=TRUE)

          A) 46

          B) 12

          C) 34

          D) 80

          答案:(C)

          all.x表示以A為基礎進行合并,因此合并后的數據框將包含與A相同的行數。所以,選項C是正確答案。

          35

          加載數據集后,數據科學家通常做的第一件事就是明確數據集所包含的行數和列數。更專業地講,這是了解數據集的維度。這樣做是為了明確正在處理的數據規模,然后選擇正確的技術和工具。

          以下哪個命令不能幫我們查看數據集的維度?

          A) dim()

          B) str()

          C) View()

          D) None of the above

          答案:(C)

          View命令能夠以類似電子表格的格式將數據集打印到控制臺,但不能幫助我們查看數據集維度。因此,選項C是正確答案。

          36

          有時候,我們會遇到這樣的情況,即一個數據集包含兩列,而我們希望知道其中一列的哪些元素不存在于另一列中。這在R中使用setdiff命令很容易實現。

          Column1Column2Column3Column4Column5Column6
          Name1Alpha1224540Zion
          Name2Beta1632511Beta
          Name3Alpha52104320Gamma
          Name4Beta3672841Delta
          Name5Beta4590320Phi
          Name6Alpha1224120Zeta
          Name7Beta3264641Sigma
          Name8Alpha4284540Mu
          Name9Alpha56112311Eta

          Dataframe

          以下命令的輸出是什么?

          setdiff(dataframe$Column1,dataframe$Column6)==setdiff(dataframe$Column6,dataframe$Column1)

          A) TRUE

          B) FALSE

          C) Can’t Say

          答案:(B)

          參數的順序在setdiff函數中很重要。因此,選項B是正確答案。

          37

          下列數據集存儲在一個名為“frame”的變量中。

          AB
          alpha100
          beta120
          gamma80
          delta110

          以下哪個命令可以為上述數據集創建條形圖。使用B列中的值來表示條形圖的高度。

          A) ggplot(frame,aes(A,B))+geom_bar(stat=”identity”)

          B) ggplot(frame,aes(A,B))+geom_bar(stat=”bin”)

          C) ggplot(frame,aes(A,B))+geom_bar()

          D) None of the above

          答案:(A)

          stat =“identity”將確保B列中的值成為條形圖的高度。因此,選項A是正確答案。

          38

          Ampgcyldisphpdratwtqsecvsamgearcarb
          Mazda RX421.061601103.902.62016.460144
          Mazda RX4 Wag21.061601103.902.87517.020144
          Datsun 71022.84108933.852.32018.611141
          Hornet Drive21.462581103.083.21519.441031
          Hornet Sportabout18.783601753.153.44017.020032
          Valiant18.162251052.763.46020.221031

          我們希望為cyl變量創建一個堆疊條形圖,堆疊標準為“要素vs數量”。以下哪個命令將幫助我們執行此操作?

          A)qplot(factor(cyl),data=mtcars,geom=”bar”,fill=factor(vs)

          B) ggplot(mtcars,aes(factor(cyl),fill=factor(vs)))+geom_bar()

          C) All of the above

          D) None of the above

          答案:(C)

          選項A和B都將創建一個由“fill”參數引導的堆疊條形圖。因此,選項C是正確答案。

          39

          39)命令paste(1:3,c(“x”,“y”,“z”),sep =“”)的輸出是什么?

          A) [1 2 3x y z]

          B) [1:3x y z]

          C) [1x 2y 3z]

          D) None of the above

          答案:(C)

          40

          R語言擁有豐富的資源,可以用來繪制非常高端的圖表,很多時候你想保存圖表以便向他人展示。那么,將你的圖表保存為PDF文件便是這一種選擇。

          如果要將圖表保存為PDF文件,下列哪項做法正確?

          A) Construct the plot on the screen device and then copy it to a PDF file with dev.copy2pdf().

          B) Construct the plot on the PNG device with png(), then copy it to a PDF with dev.copy2pdf().

          C) Open the PostScript device with postscript(), construct the plot, then close the device with dev.off().

          D) Open the screen device with quartz(), construct the plot, and then close the device with dev.off().

          答案:(A)

          首先在屏幕設備上創建圖表,然后可以輕松地復制到pdf文件中。因此,選項A是正確答案。

          結語

          用以上的四十道題來檢驗自己R語言的編程能力吧!祝大家編程愉快,早日脫單!

          原文鏈接:https://www.analyticsvidhya.com/blog/2017/05/40-questions-r-for-data-science/

          者:極客小俊
          一個把邏輯思維轉變為代碼的技術博主


          引言

          我們平常在項目開發當中, 利用調試工具來調試CSS相關的代碼, 它可以幫助我們了解哪些CSS 功能被使用,CSS代碼效率,以及CSS代碼的執行情況,而這些都是 CSS 代碼檢查與調試的核心, 它在某種情況下,會影響我們整個網站應用程序的整體性能, 所以掌握必要的調試技巧是很有必要的!

          使用Chrome DevTools 調試CSS代碼

          我們平常可以使用chrome瀏覽器自帶的Chrome DevTools調試工具 來檢查與調試CSS代碼!

          基礎手工調試 CSS 代碼

          快速手動查看元素的CSS樣式

          可以在chrome瀏覽器打開頁面中按下快捷鍵F12 打開chrome開發調試工具,然后使用箭頭工具Element選項中直接選擇html代碼 , 最后在右側的Style中就可以看到當前這個元素顏色、字體、大小CSS相關信息

          如圖:

          快速查看css link外部樣式表

          概念

          在我們選擇好元素節點之后, 右側的 Styles 選項卡中,出現的當前元素的 CSS屬性, 旁邊的鏈接文件可以直接點擊打開定義CSS規則外部樣式表 可以查看樣式的源文件

          快速給選擇的元素添加 行間樣式

          概念

          這種方法相當于向html標簽style 屬性一樣的原理!

          當我們在Element選項中直接選擇html代碼中的一個元素之后 , 在右側的Style中, 點擊 element.style 就可以給當前選擇的這個元素增加行間CSS樣式了!

          這個方法在實際應用開發當中很實用, 根據添加的行間css屬性我們就很容易快速判斷并且檢測出元素的CSS屬性的問題出在什么地方!

          如圖

          快速向元素已有樣式規則中添加、修改CSS屬性

          概念

          平常在開發當中 也會用到這個小技巧, 來快速檢測自己寫的CSS是否有誤!

          添加CSS聲明

          當我們在Element選項中直接選擇html代碼中的一個元素之后 , 在右側的Style中單擊要添加聲明的樣式規則{}大括號中間部分, 就可以出現光標,輸入CSS屬性名,最后輸出完成后 按 enter 鍵即可!

          修改CSS聲明

          我們只需要在原有樣式上雙擊鼠標,修改樣式規則,并按 Enter 鍵就可以了!

          如圖

          快速給元素添加class類

          概念

          當我們在Element選項中直接選擇html代碼中的一個元素之后 , 在右側的Style選項卡中有一個 .cls 的按鈕,點擊這個按鈕會顯示一個 Add new class 的輸入框,輸入想要添加的class類名之后按 enter 鍵就可以了

          這樣就可以直接點擊 添加好的class類 復選框可以來回切換樣式 進行CSS屬性的測試

          小提示: 前提是你最好是把要添加的class 先寫好!

          快速更改元素的CSS屬性值快捷鍵

          我們在Element選項右側的Style選項卡中編輯CSS屬性值的時候,可以使用鍵盤上的快捷鍵將值遞增/遞減的操作

          • 方向鍵Up 則是每點擊一次給CSS屬性值增加1
          • 方向鍵Down 則是每點擊一次給CSS屬性值減少1
          • Alt+ 方向鍵Up 支持(windows,Linux)則是每點擊一次給CSS屬性值增加0.1
          • Alt+ 方向鍵Down 支持(windows,Linux)則是每點擊一次給CSS屬性值減少0.1
          • Shift + 方向鍵Up 則是每點擊一次給CSS屬性值增加10
          • Shift + 方向鍵Down 則是每點擊一次給CSS屬性值減少10
          • ctrl + Shift + Page Up 支持(windows,Linux)則是每點擊一次給CSS屬性值增加100
          • ctrl + Shift + Page Down支持(windows,Linux)則是每點擊一次給CSS屬性值減少100

          拾色器的使用

          概念

          一般可以使用拾色器來快速修改元素的顏色

          Style選項卡中,選中目標html元素后 將鼠標懸停在目標元素顏色屬性小圖標上點擊一下,就可以出現拾色器了 , 如果你很會搭配顏色這個小工具還是挺有用的!

          如圖


          CSS Overview (當前頁面CSS信息提取)

          這個功能還是非常強大的! 但是chrome開發調試工具 默認是沒有開啟的, 所以需要我們手動去開啟

          如何在chrome開發調試工具中開啟CSS Overview功能

          步驟

          打開chrome瀏覽器---->F12進入調試工具----->點擊調試工具右上方的小齒輪setting圖標進入設置---

          ---->選擇Experiments----->勾選CSS Overview 選項即可!

          如圖

          注意: 開啟之后要重新開啟一下調試工具!

          CSS Overview的作用

          這個功能可以給開發者展示出當前頁面 CSS 屬性的所有信息,比如顏色、字體、對比度問題、未使用的聲明和media查詢, 通常用這個工具來判斷當前CSS 代碼的質量

          CSS Overview功能包含五個信息板塊

          1.Overview summary

          重點可以顯示出一些當前頁面中的CSS的使用情況!

          2.Colors

          可以顯示出當前頁面中使用到的所有顏色信息 包括 背景、 字體、 等等...

          3.Font info

          在這里可以顯示出當前頁面中 所使用到的字體以及字體css屬性相關的所有信息!

          也就是可以在這里看到每一種使用到的字體所設置的css字體相關屬性

          4.Media queries

          在這里可以查看到當前頁面中使用到的媒體查詢相關信息

          Coverage panel (檢測信息覆蓋度)

          這個功能主要是可以用來檢測CSSJS 文件的代碼數量以及使用評率, 也就是說它可以提示項目應用中加載的每個文件使用多少CSS

          打開步驟

          打開chrome瀏覽器---->F12進入調試工具----> Ctrl + shift + P 快捷鍵,輸入Coverage,然后再選擇: Show Coverage,最后點擊刷新的小圖標 就可以了!

          小提示 可以在 URL Filter輸入框中過濾出 .css文件, 只要輸入.css 就可以專門顯示 CSS文件了

          如圖

          這些數據看似不重要,但可能有些時候可以幫助你 建立優化思維以及策略!


          Rendering Panel (渲染面板)

          聽名字就知道它的作用是跟CSS效果渲染有關系的, 平常使用它 來檢測代碼的渲染時間以及渲染過載的區域!

          關于css渲染涉及到瀏覽器構成,這里就不過多提及,以后我會出一篇詳細做講解!

          Rendering Panel (渲染面板) 打開步驟

          打開chrome瀏覽器---->F12進入調試工具----> Ctrl + shift + P 快捷鍵----->輸入Rendering---->然后選擇 Show Rendering項, 然后回出現很多復選框功能

          平常我會用到的選項如下表:

          復選項

          描述

          Paint flashing

          當頁面上有重繪效果的地方,會顯示綠色矩形的區域進行標注! 可以簡單理解為有動態效果的頁面區域, 這些效果區域 往往瀏覽器渲染時間一些!

          Frame Rendering Stats

          這個選項勾選上之后可以顯示GPU的一些實時情況, 用來判定一些效果動畫是否卡頓還是比較有用的!



          如圖



          渲染面板中我們可以獲取到 一些常規檢查中沒有的數據信息, 這些信息對于了解 CSS 代碼 或者是 JS代碼的性能以及消耗設備的資源等 都提供了很多依據和參照, 在深度優化的時候或許能給你帶來一絲啟發!

          Performance Monitor (性能監視器)

          故名意思就是用來查看代碼運行的性能監視界面,

          打開步驟

          打開chrome瀏覽器---->F12進入調試工具----> Ctrl + shift + P 快捷鍵----->輸入Performance Monitor---->最后選擇 Show Performance Monitor 項 即可打開,

          在這個面板當中可以勾選一些選項如下

          CPU usage

          當前CPU的使用率,也就是CPU占用率

          JS heap size

          指的是JS對象堆的占用的內存大小

          DOM nodes

          內存中DOM節點個數,這個會隨著頁面的效果變化而增加或減少

          JS event listeners

          JS事件偵聽器個數

          如圖

          Layouts/sec

          在用戶查看頁面的過程當中,頁面中的布局元素重排

          Style recalcs / sec

          頁面中的樣式重繪

          以上兩個選項通常也是用于檢測與分析我們的CSS代碼性能, 例如我們在CSS中使用了left或top屬性那么就會產生一些布局上的重繪, 那么如果將這些屬性加載到JS動畫中,則可能每秒都觸發幾十甚至是上百次重繪操作

          處于性能優化考慮 , 我們如果使用了CSS3中的transform屬性中的translateX/Y來做動畫效果 ,那么會發現它并不會觸發重繪的流程,而只是組合畫面 而這些都是基于顯卡GPU, 而CPU 的使用率會大大降低!

          所以我們平常在開發JS效果的過程當中使用 translate()來移動元素,而不用 top或left來移動元素的根本原因!

          我們可以來看一下對比圖:

          小結: 所以通過 Layouts/secStyle recalcs/sec 兩個選項展示了在頁面中觸發重繪布局CSS相關信息

          以上這些在平常前端開發當中可以幫助你獲取一些實時應用程序的性能數據,在判斷性能優劣的時候也是非常有幫助的!

          Performance Panel (性能面板)

          Performance Panel跟之前的Performance Monitor的區別就是 我們先通過 Performance Monitor性能監視器來把控每一個環節的性能, 然后再使用Performance Panel進行整體的性能分析!

          打開步驟

          打開chrome瀏覽器---->F12進入調試工具----> Ctrl + shift + P 快捷鍵----->輸入Performance---->然后我們選擇 Show Performance項, 最后點擊重新加載的圖標,或者按下快捷鍵 ctrl + shift + e

          并且我們也可以反復按下快捷鍵(ctrl + shift + e)重新加載繪制頁面性能信息, 在最下面的餅圖中顯示了繪制頁面渲染頁面的總體時間!

          如圖

          從上圖中就可以看到 當我們打開性能面板加載之后就可以獲取到 加載頁面的時間/毫秒、 CSS、JS、DOM節點、事件監聽等所需要的渲染總體時間!

          國外在線CSS調試檢測代碼工具

          1.CSS Specificity Visualizer

          概述

          Specificity Visualizer個人覺得是一款國外非常不錯的在線css檢測工具

          在線地址: https://isellsoap.github.io/specificity-visualizer/

          如圖

          我們只需要打開訪問地址后 粘貼你想要檢測CSS代碼, 然后點擊Visualize it按鈕進行檢測, 然后回在下面顯示出特殊樣式選擇器 以及選擇器的權重等相關信息

          操作圖

          標記為紅色的地方說明這些選擇器還可以優化得更好!

          2.CSS Specificity Graph Generator

          概述

          這款國外在線的CSS檢測工具 可以幫助你檢測 CSS代碼中的 選擇器是如何按特定樣式組織

          在線地址: https://jonassebastianohlsson.com/specificity-graph/

          如圖

          它會提示波峰值高那么是不好的, 總的趨勢應該是在樣式表的后面有更高的特異性

          如下圖

          END

          以上就是平常我在工作與學習當中會使用到的一些CSS代碼檢測調試工具, 希望能給你帶來一點幫助!

          感謝你的閱讀!




          "點贊" "評論" "收藏"

          大家的支持就是我堅持創作下去的動力!?


          ?如果以上內容有任何錯誤或者不準確的地方,歡迎在下面 留個言指出、或者你有更好的想法,歡迎一起交流學習?

          月1日,湖北省教育考試院發布暖心高考提示之二,除了安檢和疫情防控提醒外,用了不少篇幅提醒考生規范答題。

          高考評卷采取計算機網上評卷方式進行,考生答題時所有答案都必須書寫在答題卡指定的區域上。高考答題卡總體上分為三個部分:考生信息、答題區域和題號、圖像定位點。根據近幾年答題卡掃描和高考評卷反饋的情況,考生作答的答題卡存在的主要問題有:

          1、卡首部分填寫、粘貼有誤。如:準考證號填寫錯誤;條形碼粘貼不規范,將條形碼撕破或弄皺,造成掃描困難。

          2、選擇題填涂不規范。主要包括:①填涂過輕,沒有涂黑、涂滿。②填涂標記不規范,在選項中涂“點線”“橫線”或打“√”。③填錯后修改時沒有擦干凈。④使用的2B鉛筆不符合要求,甚至用簽字筆填涂,達不到掃描要求。

          3、非選擇題答題不規范。主要包括:①使用鉛筆等非規定用筆作答;②筆細、墨淡或書寫較輕,圖像不清;③超出答題區域答題;④答題錯位,未在對應的題號下作答;⑤在規定的答題區域內,故意空出一定答題區域不答題。如在語文科目作文答題區域,將第1頁空出,從第2頁開始作答;⑥作文忘記寫題目;⑦答題卡上有記號、污損等。

          考試院提醒考生答題一定要注意作答規范,并例舉了各類題型規范答題示例(詳見省教育考試院官網http://www.hbea.edu.cn/html/2022-06/12915.html )

          據了解,今年高考根據省新冠肺炎疫情防控指揮部的要求,考生應于6月5日參加全省統一安排的免費核酸檢測,6月6日下午5點鐘前將本人健康碼、行程卡、考前48小時核酸檢測陰性證明交高中學校或考點學校查驗,查驗符合健康要求的將在準考證上加蓋“已查驗”章。

          考試期間,請考生提前到達考點。考生憑身份證、加蓋“已查驗”章的準考證,經身份驗證、體溫測量后分散有序進入。對未提供核酸檢測證明但健康碼、行程卡和體溫均正常者,要在考點進行抗原或核酸快速檢測。對抗原檢測陰性但核酸檢測結果未出的,只能在備用隔離考場參加考試。體溫異常的考生,可先在臨時留觀區休息后進行復測,復測仍然異常的,經醫療衛生專業人員評估后,具備條件的,由專人引導,前往備用隔離考場參加考試。

          (來源:湖北日報)

          【編輯:侯方隅】

          【來源:湖北日報】


          主站蜘蛛池模板: 一区二区免费电影| 国产主播一区二区| 一区二区国产精品| 看电影来5566一区.二区| 在线播放国产一区二区三区| 久久精品免费一区二区| 成人区人妻精品一区二区三区 | 中文字幕一区二区人妻| 国产成人久久一区二区不卡三区| 在线视频精品一区| 亚洲午夜在线一区| av无码精品一区二区三区四区| 亚洲av鲁丝一区二区三区| 一区二区高清视频在线观看| 91精品一区二区三区久久久久 | 国内精品一区二区三区在线观看| 视频精品一区二区三区| 精品国产一区二区三区在线| 亚洲午夜一区二区三区| 狠狠色婷婷久久一区二区三区| 欧美日韩精品一区二区在线视频| 国产精品区AV一区二区| 相泽南亚洲一区二区在线播放| 精品无码人妻一区二区三区品| 好吊视频一区二区三区| 一区二区精品在线观看| 日韩精品一区二区午夜成人版| 无码一区二区三区中文字幕| 精品人妻无码一区二区三区蜜桃一| 午夜天堂一区人妻| 国产精品香蕉在线一区| 成人区精品一区二区不卡亚洲| 亚洲一区二区三区四区在线观看| 久久高清一区二区三区| 国产成人一区二区三区在线观看| A国产一区二区免费入口| 亚洲乱色熟女一区二区三区蜜臀 | 亚洲国产精品无码第一区二区三区 | 精品国产一区二区三区av片| 久久精品无码一区二区三区免费 | 日韩好片一区二区在线看|