LoginSignup
0
0

More than 3 years have passed since last update.

tibbleの値を編集する

Posted at

Rのtibbleはdata.frameのように直接個別の値を編集する方法は提供されていないが、mutate関数を用いて、既存の値の更新を行うことができる。
まず、data.frameの場合では、以下のように値を編集できる。

# データフレームの作成
my.data <- data.frame(x=c(1:5),
                      y=c(letters[1:4], NA),
                      stringsAsFactors = FALSE)
my.data
  x    y
1 1    a
2 2    b
3 3    c
4 4    d
5 5 <NA>
# `my.data`の5行2列目に、文字列"e"を代入する。
my.data[5,2] <- "e"
my.data
  x y
1 1 a
2 2 b
3 3 c
4 4 d
5 5 e

tibbleの場合、行、列を指定して代入することはできないが、case_whenにて対象となるセルを指定して、mutateで列ごと更新する。

# tibbleの作成
my.data <- tibble::tibble(x=c(1:5), y=c(letters[1:4], NA))
my.data
# A tibble: 5 x 2
      x y    
  <int> <chr>
1     1 a    
2     2 b    
3     3 c    
4     4 d    
5     5 NA 
# これはエラーになる
# my.data[5,2] <- "e"
my.data <- my.data %>% 
  dplyr::mutate(y=dplyr::case_when(x==5 ~ "e",
                                   TRUE ~ y))
my.data
# A tibble: 5 x 2
      x y    
  <int> <chr>
1     1 a    
2     2 b    
3     3 c    
4     4 d    
5     5 e 
0
0
0

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