R データフレーム
データフレーム(Data frame)は、私たちがよく言う「テーブル」と理解できます。
データフレームは R 言語のデータ構造であり、特別な2次元リストです。
データフレームの各列には一意の列名があり、長さはすべて等しくなります。同じ列内のデータ型は一致している必要がありますが、異なる列のデータ型は異なっていても構いません。
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: ブール値。文字を因子に変換するかどうかを指定します。初期設定のデフォルト値は TRUE ですが、オプション(stringsAsFactors=FALSE)を設定することで変更できます。
次に、名前、社員番号、月給を含む簡単なデータフレームを作成します:
例
名前= c(张三, 李四),
社員番号= c("001","002"),
月給= c(1000, 2000)
)
print(table) # table データを確認
上記のコードを実行すると、出力結果は次のとおりです:
姓名 工号 月薪 1 张三 001 1000 2 李四 002 2000
データフレームのデータ構造は、str()関数で表示できます:
例
名前= c(张三, 李四),
社員番号= c("001","002"),
月給= c(1000, 2000)
)
# データ構造を取得
str(table)
上記のコードを実行すると、出力結果は次のとおりです:
'data.frame': 2 obs. of 3 variables: $ 姓名: chr "张三" "李四" $ 工号: chr "001" "002" $ 月薪: num 1000 2000
summary()データフレームの概要情報を表示できます:
例
名前= 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
指定した列を抽出することもできます:
例
名前= c(张三, 李四),
社員番号= c("001","002"),
月給= c(1000, 2000)
)
# 指定した列を抽出
result <- data.frame(table$名前,table$月給)
print(result)
上記のコードを実行すると、出力結果は次のとおりです:
table.姓名 table.月薪 1 张三 1000 2 李四 2000
次の形式で最初の2行を表示します:
例
名前= c(张三, 李四,王五),
社員番号= c("001","002","003"),
月給= c(1000, 2000,3000)
)
print(table)
# 最初の2行を抽出
print("---最初の2行を出力----")
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列目のデータを読み取ります:
例
名前= 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
データフレームの拡張
既存のデータフレームを拡張できます。次の例では、部門列を追加します:
例
名前= c(张三, 李四,王五),
社員番号= c("001","002","003"),
月給= c(1000, 2000,3000)
)
# 部門列を追加
table$部門<- c(運営,技術,編集)
print(table)
上記のコードを実行すると、出力結果は次のとおりです:
姓名 工号 月薪 部门 1 张三 001 1000 运营 2 李四 002 2000 技术 3 王五 003 3000 编辑
私たちは使用できますcbind()関数は複数のベクトルを1つのデータフレームに結合します:
例
sites <- c("Google","サンプル","Taobao")
likes <- c(222,111,123)
url <- c("www.google.com","www.example.com","www.taobao.com")
# ベクトルをデータフレームに結合
addresses <- cbind(sites,likes,url)
# データフレームを確認
print(addresses)
上記のコードを実行すると、出力結果は次のとおりです:
sites likes url
[1,] "Google" "222" "www.google.com"
[2,] "サンプル" "111" "www.example.com"
[3,] "Taobao" "123" "www.taobao.com"
2つのデータフレームを結合する場合は、次を使用できますrbind()関数:
例
名前= c(张三, 李四,王五),
社員番号= c("001","002","003"),
月給= c(1000, 2000,3000)
)
newtable = data.frame(
名前= c(小明, 小白),
社員番号= c("101","102"),
月給= c(5000, 7000)
)
# 2つのデータフレームを結合
result <- rbind(table,newtable)
print(result)
上記のコードを実行すると、出力結果は次のとおりです:
姓名 工号 月薪 1 张三 001 1000 2 李四 002 2000 3 王五 003 3000 4 小明 101 5000 5 小白 102 7000その他の拡張