Data input and output-鍵盤和剪貼板把數據載入并保存到R

問題

你想用鍵盤輸入數據,而不是從文件中載入。

方案

數據輸入

假如您的數據如下:

size weight cost
  small      5    6
 medium      8   10
  large     11    9

鍵盤輸入或從剪貼板載入數據

從鍵盤上輸入的方法之一是從標準輸入讀取(stdin())。

# 使用read.table和stdin()剪切和粘貼
data <- read.table(stdin(), header=TRUE) 
# 系統將提示您輸入:在這復制和粘貼文本

# 或者:
# data <- read.csv(stdin())

你也可以直接從剪貼板載入:

# 首先將數據復制到剪貼板
data <- read.table('clipboard', header=TRUE)

# 或者:
# data <- read.csv('clipboard')

在腳本中載入數據

前面的方法不能用來加載腳本文件中的數據,因為輸入必須被鍵入(或粘貼)在運行該命令之后。

# 使用read.table()
data <- read.table(header=TRUE, text='
    size weight cost
   small      5    6
  medium      8   10
   large     11    9
 ')

不同的數據格式(如:以逗號分隔,沒有表頭,等等),選擇read.table()可以設置。

見../ Data input and output-R載入文件中的數據查看更多信息。

數據輸出

默認情況下,R打印行名稱。如果你想打印表的格式,可以復制粘貼,可能很有用。

print(data, row.names=FALSE)
#>    size weight cost
#>   small      5    6
#>  medium      8   10
#>   large     11    9

寫入可以復制粘貼或粘貼到剪貼板的數據

可以寫帶分隔符數據終端(stdout()),這樣它就可以被復制粘貼到其他地方,也可以直接寫入到剪貼板。

write.csv(data, stdout(), row.names=FALSE)
# "size","weight","cost"
# "small",5,6
# "medium",8,10
# "large",11,9


# 寫到剪貼板(不支持Mac或Unix)
write.csv(data, 'clipboard', row.names=FALSE)

輸出R的載入

如果數據已經加載到R,可以使用dput()保存數據。從dput()的輸出是創建數據結構的一個命令。這種方法的優點是,它可以保持任何數據類型的修改。舉個例子,如果有一列數據,包含數字和你已經轉換好的因子,這種方法將保留該類型,而簡單地加載文本表格(如上所示)將把它處理為數字。

# 假如你已經載入數據

dput(data)
#> structure(list(size = structure(c(3L, 2L, 1L), .Label = c("large", 
#> "medium", "small"), class = "factor"), weight = c(5L, 8L, 11L
#> ), cost = c(6L, 10L, 9L)), .Names = c("size", "weight", "cost"
#> ), class = "data.frame", row.names = c(NA, -3L))

# 之后,我們可以使用dput輸出,重新創建數據結構
newdata <- structure(list(size = structure(c(3L, 2L, 1L), .Label = c("large", 
  "medium", "small"), class = "factor"), weight = c(5L, 8L, 11L
  ), cost = c(6L, 10L, 9L)), .Names = c("size", "weight", "cost"
  ), class = "data.frame", row.names = c(NA, -3L))

原文鏈接:http://www.cookbook-r.com/Data_input_and_output/Loading_and_storing_data_with_the_keyboard_and_clipboard/

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容