专栏名称: 大数据文摘
普及数据思维,传播数据文化
目录
相关文章推荐
数据派THU  ·  Transformer模型变长序列优化:解析 ... ·  2 天前  
CDA数据分析师  ·  【干货】12种实用数据分析模型,强烈建议收藏! ·  3 天前  
玉树芝兰  ·  想学好提示词写作吗?推荐给你一本好书 ·  昨天  
黑马程序员  ·  大数据BI工程师,如何利用AI技术赋能工作? ·  3 天前  
黑马程序员  ·  大数据BI工程师,如何利用AI技术赋能工作? ·  3 天前  
IDC咨询  ·  发展不及预期,GenAI+Data市场趋势分 ... ·  3 天前  
IDC咨询  ·  发展不及预期,GenAI+Data市场趋势分 ... ·  3 天前  
51好读  ›  专栏  ›  大数据文摘

干货 | 男朋友老是说自己R语言很6,快来用这40道题目检测他

大数据文摘  · 公众号  · 大数据  · 2017-08-07 12:17

正文

大数据文摘作品,转载要求见文末

作者 | NSS

编译 | 张伯楠,刘云南

弋心,卫青,宁云州


R语言是数据科学领域最流行的语言之一。如果你真想从事数据科学事业,那你要么已经会用R语言要么正在学习它。R语言同样是一个拥有广泛的统计和数据科学库的生态系统。为了帮助数据科学家测试他们的R语言能力,我们为DataFest 2017设计了一部分技能测试题。

超过1500人注册了这项考试并有接近500人完成了测试。下图是不同测试者的成绩分布:

下面是关于成绩分布的一些统计数据:

平均分:16.69

分数中值:19

众数:0


下面是这四十道题目的问题和答案,如果错过了测验,你还有机会完成这四十道题目,看看自己在R语言上究竟处于什么水平。

友情提示:在使用本文代码之前,请先清除格式,或查看本文原文网址复制使用。

祝你学习愉快!


问题与答案

1

请看下列函数

f

      g

             y + z

      }

      z

      x + g(x)

}

1)如果我们执行下列命令(写在下一行),输出结果会是什么?

z

f(4)

A) 12

B) 7

C) 4

D) 16

答案:(A)

R语言的作用域规则(scoping rule)会使z

2

鸢尾属植物(iris)数据集包括多种具有不同萼片(sepal)长度的花,如多刚毛类(setosa)、杂色类(versicolor)和维尔吉尼卡(virginica)等。现在,我们想分析所有鸢尾属花的萼片长度分布。其中之一的解决方法是通过下面所示的图可视化它们之间的关系。

下列哪个函数能够用于创建上文所示的图?

A) xyplot()
B) stripplot()
C) barchart()
D) bwplot()

答案:(B)

上文所绘是条型图而选项A、C、D会分别产生散点图、柱状图以及箱线图。因此,B选项是正确答案。

3

Alpha

125.5

0

Beta

235.6

1

Beta

212.03

0

Beta

211.30

0

Alpha

265.46

1

文件名: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文件,其中数据储存在第三个工作表中。

Alpha

125.5

0

Beta

235.6

1

Beta

212.03

0

Beta

211.30

0

Alpha

265.46

1

文件名: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

A


10

Sam

B


20

Peter

C


30

Harry

D


!

?

E


50

Mark

文件名: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 1

Column 2

Column 3

Row 1

15.5

14.12

69.5

Row 2

18.6

56.23

52.4

Row 3

21.4

47.02

63.21

Row 4

36.1

56.63

36.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 1

Column 2

Column 3

Row 1

15.5

14.12

69.5

Row 2

18.6

56.23

52.4

Row 3

21.4

47.02

63.21

Row 4

36.1

56.63

36.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

Dataframe1

Feature1Feature2Feature3Feature4A100025.510B200035.534C300045.578D400055.53

Dataframe2

Feature1Feature2Feature3E500065.5F600075.5G700085.5H800095.5

上图为两个数据框,数据1和数据2。

下列哪行代码可以执行出下述结果?

Feature1

Feature2

Feature3

A

1000

25.5

B

2000

35.5

C

3000

45.5

D

4000

55.5

E

5000

65.5

F

6000

75.5

G

7000

85.5

H

8000

95.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

V1

V2

1

121.5

461

2

516

1351

3

451

6918

4

613

112

5

112.36

230

6

25.23

1456

7

12

457

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表示。

A

10

Sam

B

NA

Peter

C

30

Harry

D

40

NA

E

50

Mark

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”变量绘制柱状图。

Parameter

State

Value

Dependents

Alpha

Active

50

2

Beta

Active

45

5

Beta

Passive

25

0

Alpha

Passive

21

0

Alpha

Passive

26

1

Beta

Active

30

2

Beta

Passive

18

0

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

Parameter

State

Value

Usage

Alpha

Active

50

0

Beta

Active

45

1

Beta

Passive

25

0

Alpha

Passive

21

0

Alpha

Passive

26

1

Beta

Active

30

1

Beta

Passive

18

0


诸如XGBOOST等算法只对数值数据有效。在这种情况下,数据集中的分类变量将先被转化为虚拟变量,其可以展示数据集中某个分类是否存在。比如,当对“Parameter”项数据创建虚拟变量后,数据集显示如下。

Parameter_Alpha

Parameter_Beta

State

Value

Usage

1

0

Active

50

0

0

1

Active

45

1

0

1

Passive

25

0

1

0

Passive

21

0

1

0

Passive

26

1

0

1

Active

30

1

0

1

Passive

18

0

下面中的哪个命令能实现这个功能?

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

Column1

Column2

Column3

Column4

Column5

Column6

Name1

Alpha

12

24

54

0

Alpha

Name2

Beta

16

32

51

1

Beta

Name3

Alpha

52

104

32

0

Gamma

Name4

Beta

36

72

84

1

Delta

Name5

Beta

45

90

32

0

Phi

Name6

Alpha

12

24

12

0

Zeta

Name7

Beta

32

64

64

1

Sigma

Name8

Alpha

42

84

54

0

Mu

Name9

Alpha

56

112

31

1

Eta

以上为名为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

Parameter

State

Value

Dependents

Alpha

Active

50

2

Beta

Active

45

5

Beta

Passive

25

0

Alpha

Passive

21

0

Alpha

Passive

26

1

Beta

Active

30

2

Beta

Passive

18

0

以上为名为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”的变量中。

A

B

1

Right

2

Wrong

3

Wrong

4

Right

5

Right

6

Wrong

7

Wrong

8

Right

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已经证明影响不显著。因此我们不会把这两个特性加入到我们的预测模型中。


Column1

Column2

Column3

Column4

Column5

Column6

Name1

Alpha

12

24

54

0

Alpha

Name2

Beta

16

32

51

1

Beta

Name3

Alpha

52

104

32

0

Gamma

Name4

Beta

36

72

84

1

Delta

Name5

Beta

45

90

32

0

Phi

Name6

Alpha

12

24

12

0

Zeta

Name7

Beta

32

64

64

1

Sigma

Name8

Alpha

42

84

54

0

Mu

Name9

Alpha

56

112

31

1

Eta

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

Column1

Column2

Column3

Column4

Column5

Column6

Name1

Alpha

12

24

54

0

Alpha

Name2

Beta

16

32

51

1

Beta

Name3

Alpha

52

104

32

0

Gamma

Name4

Beta

36

72

84

1

Delta

Name5

Beta

45

90

32

0

Phi

Name6

Alpha

12

24

12

0

Zeta

Name7

Beta

32

64

64

1

Sigma

Name8

Alpha

42

84

54

0

Mu

Name9

Alpha

56

112

31

1

Eta

以上为变量名为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

Column1

Column2

Column3

Column4

Column5

Column6

Name1

Alpha

12

24

54

0

Alpha

Name2

Beta

16

32

51

1

Beta

Name3

Alpha

52

104

32

0

Gamma

Name4

Beta

36

72

84

1

Delta

Name5

Beta

45

90

32

0

Phi

Name6

Alpha

12

24

12

0

Zeta

Name7

Beta

32

64

64

1

Sigma

Name8

Alpha

42

84

54

0

Mu

Name9

Alpha

56

112

31

1

Eta

以上为变量名为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

B

parts

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

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

以下哪个命令能帮我们计算出由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

A)一个两列三行的矩阵

B)一个三列两行的矩阵

C)一个两列三行的数据框

D)一个三列两行的数据框

答案:(D)

上述所有选项定义的都是杂乱数据,因此选项D是正确答案。

31

下列哪一命令可以把以下名为maverick的数据框转换为下方显示的数据框?

输入数据 ——“maverick”

Grade

Male

Female

A

10

15

B

20

15

A

30

35

输出数据

Grade

Sex

Count

A

Male

10

A

Female

15

B

Male

30

B

Female

15

A

Male

30

A

Female

35

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

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

创建一个表示另一变量是否有缺失值的特征数据,有时对于预测模型来说非常有用。

下方数据框中的某一列有缺失值。

Feature1

Feature2

B

NA

C

30

D

40

E

50

以下哪个命令将创建一个名为“missing”、值为1的列,其中变量“Feature2”具有缺失值?

Feature1

Feature2

Missing

B

NA

1

C

30

0

D

40

0

E

50

0

A)

dataframe$missing

dataframe$Missing[is.na(dataframe$Feature2)]

B)

dataframe$missing

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

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命令很容易实现。


Column1

Column2

Column3

Column4

Column5

Column6

Name1

Alpha

12

24

54

0

Zion

Name2

Beta

16

32

51

1

Beta

Name3

Alpha

52

104

32

0

Gamma

Name4

Beta

36

72

84

1

Delta

Name5

Beta

45

90

32

0

Phi

Name6

Alpha

12

24

12

0

Zeta

Name7

Beta

32

64

64

1

Sigma

Name8

Alpha

42

84

54

0

Mu

Name9

Alpha

56

112

31

1

Eta

Dataframe

以下命令的输出是什么?

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

A) TRUE

B) FALSE

C) Can’t Say

答案:(B)

参数的顺序在setdiff函数中很重要。因此,选项B是正确答案。

37

下列数据集存储在一个名为“frame”的变量中。

A

B

alpha

100

beta

120

gamma

80

delta

110


以下哪个命令可以为上述数据集创建条形图。使用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

A

mpg

cyl

disp

hp

drat

wt

qsec

vs

am

gear

carb

Mazda RX4

21.0

6

160

110

3.90

2.620

16.46

0

1

4

4

Mazda RX4 Wag

21.0

6

160

110

3.90

2.875

17.02

0

1

4

4

Datsun 710

22.8

4

108

93

3.85

2.320

18.61

1

1

4

1

Hornet Drive

21.4

6

258

110

3.08

3.215

19.44

1

0

3

1

Hornet Sportabout

18.7

8

360

175

3.15

3.440

17.02

0

0

3

2

Valiant

18.1

6

225

105

2.76

3.460

20.22

1

0

3

1

我们希望为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/





20177《顶级数据团队建设全景报告》下载

关于转载

如需转载,请在开篇显著位置注明作者和出处(转自:大数据文摘 | bigdatadigest),并在文章结尾放置大数据文摘醒目二维码。无原创标识文章请按照转载要求编辑,可直接转载,转载后请将转载链接发送给我们;有原创标识文章,请发送【文章名称-待授权公众号名称及ID】给我们申请白名单授权。未经许可的转载以及改编者,我们将依法追究其法律责任。联系邮箱:[email protected]

志愿者介绍

回复“志愿者”加入我们

 


往期精彩文章

点击图片阅读

手把手 | 用Python写成的MCR乐队敲诈者木马:这种操作很朋克!