首 页IT知识库翔宇问吧收藏本站
当前位置:翔宇亭IT乐园IT知识库R语言

R语言中使用scan()函数输入数据

减小字体 增大字体 作者:本站  来源:本站原创  发布时间:2017-10-27 21:07:55

在R语言中,可以使用scan()函数从键盘中获取数据。scan()函数的语法格式可以参见《R语言中scan()函数参数详解》。

1、直接输入数据

输入数据时,可以每次输完一个数据后换行,也可以以空格作为分隔符输入数据。

(1)每行一个数据

scan()
1: 11
2: 12
3: 13
4:

Read 3 items
[1] 11 12 13

(2)以空格作为数据的分隔符

scan()
1: 11 12 13
4:

Read 3 items
[1] 11 12 13

(3)可以每行的数据量不同

scan()
1: 11 12
3: 13
4:

Read 3 items
[1] 11 12 13

以上在R中执行的情况如下图所示:

在R中使用scan()函数直接输入数据

2、输入数据时指定分隔符

scan(sep=",")
1: 11,12,13
4:

Read 3 items
[1] 11 12 13

这样,允许用户在输入数据时指定自己所用的分隔符,这里是中文逗号。

3、输入字符型数据

若使用scan()函数直接从键盘中输入字符型数据,需要指定what参数为character,否则出错。

(1)不指定what参数会报错

scan()
1: I Love China!

Error in scan() : scan() expected 'a real', got 'I'

(2)指定what参数

scan(what='character')
1: I Love China!
4:

Read 3 items
[1] "I" "Love" "China!"

(3)指定what参数和sep参数读入多个字符串

scan(what='character',sep=',')
1: I Love China!,I Love Beijing!,I Love my Family!
4:

Read 3 items
[1] "I Love China!" "I Love Beijing!" "I Love my Family!"

本部分在R中的执行情况如下图所示:

R语言中使用scan()函数输入字符串数据

4、输入数据到变量中

v<-scan(sep=",")
1: 11,12,13
4:

Read 3 items
> v
[1] 11 12 13

5、可以使用scan()函数输入数据创建其它数据对象

m<-matrix(scan(),nr=3,nc=4)  #创建矩阵

vc<-c(scan())   #创建向量

arr<-array(scan(sep=','),dim=c(2,3,2))   #创建数组

fc<-factor(scan(what='c',sep=','))  #创建因子

以上的执行情况如下图所示:

R语言中使用scan()函数输入数据并创建其它数据对象
R语言中使用scan()函数输入数据并创建因子

6、也可以在创建数据对象时使用多个scan()函数

下面使用scan()函数创建一个数据框df

df<-data.frame(name=scan(what='c',sep=','),sex=scan(what='c',sep=','))

执行情况如下图:

使用多个scan()函数创建一个数据框

7、关于scan()函数输入数据结束的方法

在R中,当使用scan()函数输入数据时,如果想退出输入,可以多按一个空行,即结束输入时,按完回车后,再按一个回车键即可,在以上两个图中可以看到这种情况。

另外,如果输完数据,也可以按CTRL+Z快捷键结束输入。

本部分(完)

本文为本站原创,如需转载,请注明出处:R语言中使用scan()函数输入数据-翔宇亭IT乐园

知识评论评论内容只代表网友观点,与本站立场无关!

   评论摘要(共 0 条,得分 0 分,平均 0 分) 查看完整评论

用户名: 查看更多评论

分 值:100分 85分 70分 55分 40分 25分 10分 1分

内 容:

            请注意用语文明且合法,不要发布带有攻击性、侮辱性的言论,谢谢合作!

         通知管理员 验证码:

关于本站 | 网站帮助 | 广告合作 | 网站声明 | 友情连接 | 网站地图 | 用户守则 | 联系我们
本站大多数内容来自互联网或网站会员发布,如有侵权,请来信告之,谢谢!
Copyright © 2007-2017 biye5u.com. All Rights Reserved.
网站备案号:黑ICP备13005378号-3