English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

R CSV ファイル

Rは統計学の専門ツールであり、データのインポートやエクスポートが手動で行われるとその機能が無意味になるため、Rは主なテーブル形式のファイル(例えばCSV、Excel、XMLなど)からデータをバッチで取得をサポートしています。

CSVテーブルのインタラクション

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'

读取 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 ファイルが生成されました。