本文へスキップ
からだにいいもの

Rのトピックスを中心に『まだ、まだ、知らない、役に立つ情報?』を発信します。

Rで解析:名前付きの数値ベクトルから名前で値を計算したtableオブジェクトの作成方法

お問い合わせよりご連絡いただいた、パッケージを使用せずに名前付きの数値ベクトルから名前で値を計算したtableオブジェクトの作成方法を紹介します。

なお、0を含む行は途中のコマンドで削除しています。実行コマンドが誰かのRの理解促進になればと思います。

windows 11のR version 4.4.1で確認しています。

実行コマンド

コマンドや詳細はコメントやコマンドヘルプを確認してください。

# 名前付きの数値ベクトルの作成
TestData <- c(x = 1, b = 2, a = 2, 
              b = 3, c = 7, x = -1)

# もしくは_01
# TestData <- c(1, 2, 2, 3, 7, -1)
# names(x) <- c("x", "b", "a", "b", "c", "x")

# もしくは_02
# structureコマンドはclassを設定できます
# TestData <- structure(c(1, 2, 2, 3, 7, -1),
#                       names = c("x", "b", "a", "b", "c", "x"),
#                       class = c("numeric", "karada"))

# 内容を確認
TestData
# x  b  a  b  c  x 
# 1  2  2  3  7 -1

# 試しにtableコマンド
# 要素の数が示される,欲しいのは集計結果
table(TestData)
# TestData
# -1  1  2  3  7 
#  1  1  2  1  1 

# 集計:aggregateコマンド;結果はdeta.frameになる
# listを使うと列名の指定が可能です
# 処理はFUNオプションで指定します
Test_01 <- aggregate(list(V1 = as.integer(TestData)),
                     list(V2 = names(TestData)),
                     FUN = sum)

# 0を含む行を確認
#Zero_Row <- apply(Test, 1, function(n) all(n !=0))
# 0を含む行を削除
Test_02 <- Test_01[Test_01[2] != 0,]

### table化:完成 #####
# xtabsコマンドを使用します
(Test_03 <- xtabs(Test_02$V1 ~ Test_02$V2,
                  data = Test_02))
# Test_02$V2
# a b c 
# 2 5 7 

# classの確認
# class(Test_03)
# [1] "xtabs" "table"

少しでも、あなたの解析が楽になりますように!!

スポンサーリンク
Prices and shipping availability may change. Please refer to the product page at time of purchase.
Content displayed on this site is provided by Amazon and may be updated or removed.
Amazon Associate, karada-good earns income through qualifying sales.