在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中執行的情況如下圖所示:
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中的執行情況如下圖所示:
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=',')) #創建因子
以上的執行情況如下圖所示:
6、也可以在創建數據對象時使用多個scan()函數
下面使用scan()函數創建一個數據框df
df<-data.frame(name=scan(what='c',sep=','),sex=scan(what='c',sep=','))
執行情況如下圖:
7、關于scan()函數輸入數據結束的方法
在R中,當使用scan()函數輸入數據時,如果想退出輸入,可以多按一個空行,即結束輸入時,按完回車后,再按一個回車鍵即可,在以上兩個圖中可以看到這種情況。
另外,如果輸完數據,也可以按CTRL+Z快捷鍵結束輸入。
新聞熱點
疑難解答