English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
Rは統計学の専門ツールであり、データのインポートやエクスポートが手動で行われるとその機能が無意味になるため、Rは主なテーブル形式のファイル(例えばCSV、Excel、XMLなど)からデータをバッチで取得をサポートしています。
CSV(カンマ)-セパレート・バリュー、CSV、時にはカラム・セパレート・バリューとも呼ばれ、カラムの分離文字がカンマでない場合もありますが、非常に人気のあるテーブル形式のファイル形式であり、中規模または小規模のデータセットの保存に適しています。
ほとんどのソフトウェアがこのファイル形式をサポートしているため、データの保存と交換に常用されています。
CSVはテキストの本質であり、そのファイル形式は非常にシンプルです:データは一行ごとにテキストで保存され、各レコードはフィールドに分割され、各レコードには同じフィールドシーケンスがあります。
以下是一个简单的 sites.csv 文件(存储在测试程序的相同目录下):
id,name,url,likes 1,Google,www.google.com,111 2,w3codebox,ja.oldtoolbag.com,222 3,Taobao,www.taobao.com,333
CSV 用逗号来分割列,如果数据中含有逗号,就要用双引号将整个数据块包括起来。
注意:包含非英文字符的文本要注意保存的编码,由于很多计算机普遍使用 UTF-8 编码,所以我是用 UTF-8 进行保存的。
注意: CSV 文件最后一行需要保留一个空行,不然执行程序会有警告信息。
Warning message: In read.table(file = file, header = header, sep = sep, quote = quote, : incomplete final line found by readTableHeader on 'sites.csv'
接下来我们就可以使用 read.csv() 函数来读取 CSV 文件的数据:
data <- read.csv("sites.csv", encoding="UTF-8) print(data)
如果不设置 encoding 属性,read.csv 函数将默认以操作系统默认的文字编码进行读取,如果你使用的是 Windows 中文版系统且没有设置过系统的默认编码,那系统的默认编码应该是 GBK。所以大家请尽可能地统一文字编码以防出错。
以下のコードを実行すると、出力結果が:
id name url likes 1 1 Google www.google.com 111 2 2 w3codebox ja.oldtoolbag.com 222 3 3 Taobao www.taobao.com 333
read.csv() 函数返回的是数据框,我们可以很方便的对数据进行统计处理,以下示例我们查看行数和列数:
data <- read.csv("sites.csv", encoding="UTF-8) print(is.data.frame(data)) # 查看是否是数据框 print(ncol(data)) # 列数 print(nrow(data)) # 行数
以下のコードを実行すると、出力結果が:
[1] TRUE [1] 4 [1] 3
以下统计数据框中 likes 字段最大对数据:
data <- read.csv("sites.csv", encoding="UTF-8) # likes 最大的数据 like <- max(data$likes) print(like)
以下のコードを実行すると、出力結果が:
[1] 333
我们也可以指定查找条件,类似 SQL where 子句一样查询数据,需要用到到函数是 subset()。
以下の例では likes が 222 以下のデータに:
data <- read.csv("sites.csv", encoding="UTF-8) # likes は 222 のデータ retval <- subset(data, likes == 222) print(retval)
以下のコードを実行すると、出力結果が:
id name url likes 2 2 w3codebox ja.oldtoolbag.com 222
注意:条件文の等価を使用する ==。
複数の条件を & 分割記号で区切って、以下の例では likes が 1 name が w3codebox のデータ:
data <- read.csv("sites.csv", encoding="UTF-8) # likes が 1 name が w3codebox のデータ retval <- subset(data, likes > 1 & name=="w3codebox") print(retval)
以下のコードを実行すると、出力結果が:
id name url likes 2 2 w3codebox ja.oldtoolbag.com 222
R 言語は write.csv() 関数を使用してデータを CSV ファイルに保存します。
上記の例に続いて、likes が 222 に保存します。3のデータを w
data <- read.csv("sites.csv", encoding="UTF-8) # likes は 222 のデータ retval <- subset(data, likes == 222) # 新しいファイルに書き込み write.csv(retval,"w3codebox.csv") newdata <- read.csv("w3codebox.csv") print(newdata)
以下のコードを実行すると、出力結果が:
codebox.csv ファイル: 1 2 2 w3codebox ja.oldtoolbag.com 222
X newper データセットから X id name url likes
data <- read.csv("sites.csv", encoding="UTF-8) # likes は 222 のデータ retval <- subset(data, likes == 222) # 新しいファイルに書き込み write.csv(retval,"w3codebox.csv", row.names = FALSE) newdata <- read.csv("w3codebox.csv") print(newdata)
以下のコードを実行すると、出力結果が:
id name url likes 1 2 w3codebox ja.oldtoolbag.com 222
実行後、w3codebox.csv ファイルが生成されました。