English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
データフレーム(Data frame)は私たちがよく言う「テーブル」です。
データフレームはR言語のデータ構造で、特別な二次リストです。
データフレームの各列にはユニークな列名があり、長さはすべて同じで、同一列のデータ型は一致する必要がありますが、異なる列のデータ型は異なります。
R言語データフレームは data.frame() 関数を使用して作成されます、文法形式は以下の通りです:
data.frame(…, row.names = NULL, check.rows = FALSE, check.names = TRUE, fix.empty.names = TRUE, stringsAsFactors = default.stringsAsFactors())
...: 列ベクトル、どんなタイプでも可(文字型、数値型、論理型)、一般的には tag = value の形式で表現され、value だけでも可。
row.names: 行名,デフォルトは NULL で、単一の数字、文字列、または文字列と数字のベクトルに設定できます。
check.rows: 行の名前と長さが一致するかどうかを確認します。
check.names: データフレームの変数名が合法かどうかを確認します。
fix.empty.names: 名前のないパラメータが自動的に名前を設定されるかどうか。
stringsAsFactors: 布尔値、文字列が因子に変換されるかどうか。-freshのデフォルト値はTRUEですが、オプション(stringsAsFactors=FALSE)を設定して変更できます。
以下に簡単なデータフレームを作成します。姓名、工号、月薪を含みます:
table = data.frame( 姓名 = c("张三", "李四"), 工号 = c("001","002 月薪 = c(1000, 2000) ) print(table) # tableデータの確認
上記のコードを実行した結果は:
姓名 工号 月薪 1 張三 001 1000 2 李四 002 2000
データフレームのデータ構造は、以下で確認できます: str() 関数を使用して表示します:
table = data.frame( 姓名 = c("张三", "李四"), 工号 = c("001","002 月薪 = c(1000, 2000) ) # データ構造取得 str(table)
上記のコードを実行した結果は:
'data.frame': 2 obs. of 3 variables: $ 姓名: chr "张三" "李四" $ 工号: chr "001" "002" $ 月薪: num 1000 2000
summary() データフレームの概要情報を表示することができます:
table = data.frame( 姓名 = c("张三", "李四"), 工号 = c("001","002 月薪 = c(1000, 2000) ) # 概要表示 print(summary(table))
上記のコードを実行した結果は:
姓名 工号 月薪 Length:2 Length:2 Min. :1000 Class :character Class :character 1st Qu.:1250 Mode :character Mode :character Median :1500 Mean :1500 3rd Qu.:1750 Max. :2000
指定列を抽出することもできます:
table = data.frame( 姓名 = c("张三", "李四"), 工号 = c("001","002 月薪 = c(1000, 2000) ) # 指定列の抽出 result <- data.frame(table$姓名,table$月薪) print(result)
上記のコードを実行した結果は:
table.姓名 table.月薪 1 张三 1000 2 李四 2000
以下の形式で前两行を表示します:
table = data.frame( 姓名 = c("張三", "李四","王五"), 工号 = c("001","002","003 月薪 = c(1000, 2000,3000) ) print(table) # 前两行の抽出 print("---前两行の出力----)] result <- table[1:2,] print(result)
上記のコードを実行した結果は:
姓名 工号 月薪 1 張三 001 1000 2 李四 002 2000 3 王五 003 3000 [1] "---前两行の出力----" 姓名 工号 月薪 1 張三 001 1000 2 李四 002 2000
指定行の特定の列のデータを読み取る方法が、座標のような形式で読み取ることができます。以下で第 2 、3 行の第 1 、2 列データ::
table = data.frame( 姓名 = c("張三", "李四","王五"), 工号 = c("001","002","003 月薪 = c(1000, 2000,3000) ) # 第 2 、3 行の第 1 、2 列データ: result <- table[c(2,3),c(1,2)] print(result)
上記のコードを実行した結果は:
姓名 工号 2 李四 002 3 王五 003
既存のデータフレームを拡張することができます。以下の例では、部門列を追加します:
table = data.frame( 姓名 = c("張三", "李四","王五"), 工号 = c("001","002","003 月薪 = c(1000, 2000,3000) ) # 追加部門列 table$部門 <- c("運営","技術","編集") print(table)
上記のコードを実行した結果は:
姓名 工号 月薪 部門 1 張三 001 1000 運営 2 李四 002 2000 技術 3 王五 003 3000 編集
以下のように使用できます cbind() 関数は、複数のベクターをデータフレームに合成します:
# ベクターの作成 sites <- c("Google","w3codebox","Taobao") likes <- c(222,111,123) url <- c("www.google.com","ja.oldtoolbag.com","www.taobao.com") # ベクターをデータフレームに結合 addresses <- cbind(sites,likes,url) # データフレームを確認 print(addresses)
上記のコードを実行した結果は:
sites likes url [1,] "Google" "222" "www.google.com" [2,] "w3codebox" "111" "ja.oldtoolbag.com" [3,] "Taobao" "123" "www.taobao.com"
データフレームを合併するには、以下のように使用できます rbind() 関数:
table = data.frame( 姓名 = c("張三", "李四","王五"), 工号 = c("001","002","003 月薪 = c(1000, 2000,3000) ) newtable = data.frame( 姓名 = c("小明", "初心者"), 工号 = c("101102 月薪 = c(5000, 7000) ) # データフレームを合併 result <- rbind(table,newtable) print(result)
上記のコードを実行した結果は:
姓名 工号 月薪 1 張三 001 1000 2 李四 002 2000 3 王五 003 3000 4 小明 101 5000 5 初心者 102 7000