用您的例子举例
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