Hatena::ブログ(Diary)

My Life as a Mock Quant このページをアンテナに追加 RSSフィード Twitter

2016-06-16

data.frame, cbindは文字列(character)ではなく因子(Factor)がデフォルトだった・・・っけ?

| 18:58 | data.frame, cbindは文字列(character)ではなく因子(Factor)がデフォルトだった・・・っけ?を含むブックマーク

掲題の件、どうやらそうだったらしい。

なので、毎回stringsAsFactorsを設定すると(Hadleyverseはあえてつかわない)


お元気で。

> df <- data.frame(x=1:3, y=letters[1:3])
> str(df)
'data.frame':	3 obs. of  2 variables:
 $ x: int  1 2 3
 $ y: Factor w/ 3 levels "a","b","c": 1 2 3
> df <- data.frame(x=1:3, y=letters[1:3], stringsAsFactors = FALSE)
> str(df)
'data.frame':	3 obs. of  2 variables:
 $ x: int  1 2 3
 $ y: chr  "a" "b" "c"
> 
> str(cbind(df, LETTERS[1:3]))
'data.frame':	3 obs. of  3 variables:
 $ x           : int  1 2 3
 $ y           : chr  "a" "b" "c"
 $ LETTERS[1:3]: Factor w/ 3 levels "A","B","C": 1 2 3
> str(cbind(df, LETTERS[1:3]), stringsAsFactors = FALSE)
'data.frame':	3 obs. of  3 variables:
 $ x           : int  1 2 3
 $ y           : chr  "a" "b" "c"
 $ LETTERS[1:3]: Factor w/ 3 levels "A","B","C": 1 2 3

2016-06-07

dockerメモ

| 12:51 | dockerメモを含むブックマーク

私的メモ

VOLUMEコマンド後に当該ディレクトリに作成したファイルは作成されない

環境変数はコンテナ起動時にその時のユーザに割り当てられる(多分)

2016-06-04

ないパッケージはインストールして、残りは全部読み込む

| 15:39 | ないパッケージはインストールして、残りは全部読み込むを含むブックマーク

pacman使えよって話だが。

# ほしいパッケージ全部書いとく
packages <- c("ggmap", "dplyr", "tidyr", "data.table", "rgl", "stringr", "R.utils", "scales")
# ないやつはインストール
new_packages <- packages[!(packages %in% installed.packages()[,"Package"])]
if(length(new_packages)){install.packages(new_packages)}
# 全部読み込む
sapply(packages, require, character.only = TRUE)

参考

2016-05-27

dplyrでデータをグループごとに分けた状態でデータを持つ

| 12:00 | dplyrでデータをグループごとに分けた状態でデータを持つを含むブックマーク

要するに、”あるグループごとのデータフレームに分解してデータを持つ”ということをしたいんだ、そしてこんなんでた。

> x <- iris %>% 
+   group_by(Species) %>% 
+   do(val=data.frame(.))
> x
Source: local data frame [3 x 2]
Groups: <by row>

     Species                 val
      (fctr)               (chr)
1     setosa <data.frame [50,5]>
2 versicolor <data.frame [50,5]>
3  virginica <data.frame [50,5]>

dplyrつかわなくても

split(iris, iris$Species)

のほうがシンプルで良さそうか。

2016-05-03

ggplot2で中が塗りつぶされていない長方形を描く

| 17:45 | ggplot2で中が塗りつぶされていない長方形を描くを含むブックマーク

使うたびにはまる系なのでめもる&答えはgeom_rect()でfill=NAとする。

library("ggplot2")
ggplot(mtcars, aes(qsec, mpg)) +
  geom_point()+
  geom_rect(aes(xmin=18, xmax=20, ymin=21, ymax=23), fill=NA, color="red")

f:id:teramonagi:20160503174628p:image

yutannihilationyutannihilation 2016/05/03 18:25 好みの問題な気もしますけど、geomだと他のレイヤーのデータとかaesのマッピングの影響を受けることがあるので、
長方形ひとつだけでいいならannotateのほうがオススメです。

ggplot(mtcars, aes(qsec, mpg)) +
geom_point()+
annotate("rect", xmin=18, xmax=20, ymin=21, ymax=23, fill="transparent", color="red")