用您的例子舉例
dt <- data.frame(V1 = rpois(5, 3),
V2 = sample(c("g1", "g2"), 5, 1), V3 = rnorm(5))
dt %>% mutate(V5 = V1 * V3, V6 = substr(V2, 2, 2),
V7 = round(V3), V8 = 1L, V3 = V3 **2)
顯示如下:
V1 V2 V3 V5 V6 V7 V8
1 3 g1 1.12495036 -3.1819103 1 -1 1
2 1 g1 0.29694964 -0.5449309 1 -1 1
3 5 g1 0.10764162 -1.6404391 1 0 1
4 2 g2 0.73171230 -1.7108037 2 -1 1
5 4 g1 0.05673553 -0.9527689 1 0 1
但是若是
dt <- data.table(V1 = rpois(5, 3),
V2 = sample(c("g1", "g2"), 5, 1), V3 = rnorm(5))
dt %>% mutate(V5 = V1 * V3, V6 = substr(V2, 2, 2),
V7 = round(V3), V8 = 1L, V3 = V3 **2)
執行後無結果
※ 引述《celestialgod (天)》之銘言:
: ※ 引述《huangsam (sam)》之銘言:
: : [問題類型]:
: : 程式諮詢(我想用R 做某件事情,但是我不知道要怎麼用R 寫出來)
: : [軟體熟悉度]:
: : 入門(寫過其他程式,只是對語法不熟悉)
: : [問題敘述]:
: : 1。使用dplyr 時資料型態需要為data.frame?
: 是的,Hadley在某篇文章(我記得是發布purrr的文章)中說明過dplyr的d是for data.frame
: : 2。data.table處理大筆資料時比data.frame好?
: 是的,data.table不會複製一次data
: : 3。我在使用dplyr時,若資料型態為data.table時,會不會有問題,與問題1有關,好比
: : 說使用filter,mutate(用的時候無效?),select,為什麼有些可以有些不行,請大大解惑
: 不會有問題,但是dplyr在操作data.table的時候,還是複製了一次 (避免一些問題)
: 所以不會享有data.table帶來的好處,現在Hadley正在做dtplyr
: 想把data.table加入dplyr,並且不會複製一次data.table
: 現在應該只有join有做完而已,其他部份還是援用dplyr的函數
: 我不懂你說的『用的時候無效』跟『有些可以有些不行』,麻煩你舉例一下
: : 謝謝!
: : [關鍵字]:
: : data.frame data.table