前面已经讲了一些最简单的操作和函数,今天讲一下怎样进行数据的输入。R的数据输入看上去不像EXCEL或者SPSS那么方便,不过也是别有一番风味的。
1.首先是我们已经知道的一个简单函数c ( ) ,它也可以用在字符变量上,比如:
> a<-c("haha","heihei")
> a
[1] "haha" "heihei"
>
2.冒号":"
比如>1:9这个命令就是产生从1到9的9个数值,步长为固定值1
> 1.5:10
[1] 1.5 2.5 3.5 4.5 5.5 6.5 7.5 8.5 9.5
>
这样素木有10滴
> c(1.5:10,10)
[1] 1.5 2.5 3.5 4.5 5.5 6.5 7.5 8.5 9.5 10.0
>
但是这样就可以啦!
> prod(1:8)
[1] 40320
>
从1乘到8。
3.seq ( )
按照指定的起始点、终点、步长或等分数来产生数列
e.g.
> seq(1,5)
[1] 1 2 3 4 5
> seq(1,5,by=.5)
[1] 1.0 1.5 2.0 2.5 3.0 3.5 4.0 4.5 5.0
> seq(1,5,.5)
[1] 1.0 1.5 2.0 2.5 3.0 3.5 4.0 4.5 5.0
> seq(1,5,length=7)
[1] 1.000000 1.666667 2.333333 3.000000 3.666667 4.333333 5.000000
>
4.复制函数rep ( )
> rep(10,10)
[1] 10 10 10 10 10 10 10 10 10 10
> rep(c("a","b","c","d"),2)
[1] "a" "b" "c" "d" "a" "b" "c" "d"
> matrix(rep(0,16),nrow=4)
[,1] [,2] [,3] [,4]
[1,] 0 0 0 0
[2,] 0 0 0 0
[3,] 0 0 0 0
[4,] 0 0 0 0
>
5.读入一个数列scan ( )
当你要输入一列比较长的数列时,c ( )就没那么好用了,这个时候,我们可以使用scan ( )函数,这个函数可以让我们直接从键盘上输入数据,只要在数据中间使用空格或是回车就可以了,比如:
> a<-scan()
1: 1 2 3 4 5 6 7 8 9 10 44 55
13: 24
14: 55
15: 67
16:
Read 15 items
> a
[1] 1 2 3 4 5 6 7 8 9 10 44 55 24 55 67
>
请注意,冒号左端的数字是提示,告诉你现在输第几个数值,当我们把15个数值输完后,在提示我们输入第16个数值的时候输入一个空值,也就是直接回车,就结束输入工作。
并且,scan ( )可以将一个外部文件的数据读入一个变量,如
> a<-scan("F:/a.txt")
Read 10 items
>
注意:在你把数据导入前你最好打开原文件看一下是否是你要的数据,并且格式是否合适;在路径的目录中,请使用"/",而不要用"\";如果你想从一个网上的文件导入数据(.txt),那么你也可以这样:
> dat<-scan("http://www...")
你还可以使用函数file.choose ( )来打开一个交互式的窗口,用鼠标选择文件。这个函数只能用来代替文件名,而不是输入函数,所以
> dat<-file.choose()
> dat
[1] "F:\\a.txt"
对象dat中的内容就是文件的路径而不是文件中的数据,而正确的做法是:
> dat<-scan(file.choose())
Read 10 items
> dat
[1] 2 3 4 5 1 6 2 4 5 7
>
发表评论