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

R データフレーム

データフレーム(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