0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

Rで量質混在データの処理tips

Last updated at Posted at 2022-10-14
この記事では、備忘録としてメモを書いていきます。

データの構造が数字と文字が混在している場合がデータ全体を一気に処理したい。

サンプルデータはirisデータセットを用いてる。
iris.PNG

例1.行ごとに合計値を計算したい。

t(apply(mat, 1, function(row) sum(row)))

「Species」列は文字列タイプなので、エラーになった。

Error in sum(row) : invalid 'type' (character) of argument

もっと効率ありの書き方をやってみる。

rowSums(iris)

前と同じ理由で「Species」列は文字列タイプなので、エラーになった。

Error in rowSums(iris) : 'x' must be numeric

rowSumsは数値タイプの列のみ応用する

iris %>% mutate("合計値"=rowSums(iris[sapply(iris, is.numeric)], na.rm = TRUE))

成功した。イメージは↓
iris2.PNG

例2.混在データの小数点の切り捨て問題

普通のroundを利用する

round(iris, digits = 0)

まだ「Species」列は文字列タイプなので、エラーになった。

Error in Math.data.frame(list(Sepal.Length = c(5.1, 4.9, 4.7, 4.6, 5,  : 
  non-numeric variable(s) in data frame: Species

modify_ifを利用してみる。

iris %>% modify_if(~is.numeric(.), ~round(., 0))

今度は成功した。イメージは↓
iris3.PNG

合計値計算の部分一部コードを↓のページから:
https://qiita.com/hoxo_m/items/d19d92130c4f6bbafcda


免責

この記事は個人のメモであり、所属する企業や団体とは関係ございません。

0
0
1

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?