我想使用dplyr复制以下内容。
set.seed(123)
my_data <- data.frame( time = c(4:13, 4:13),
var1 = rep(c("a", "b"), each=10),
var2 = rnorm(20))
my_data_new <- with(my_data,
data.frame ( time = time[var1 =="a"],
var2a = var2[var1 == "a"],
var2b = var2[var1 == "b"]))
我已经尝试使用transmute()使用类似的语法,并收到以下错误消息
Error: wrong result size (10), expected 20 or 1
谢谢!
尝试
library(tidyr)
res <- spread(my_data, var1, var2)
colnames(res) <- colnames(my_data_new)
identical(res, my_data_new)
#[1] TRUE
或者,您可以使用rename
fromdplyr
来更改列名(如@Richard Scriven所建议)
library(dplyr)
library(tidyr)
spread(my_data, var1, var2)%>%
rename(var2a=a, var2b=b)
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句