有这样的情况.试图将"mtcars"类从data.frame转换为data.table.
"mtcars"数据:
> mtcars
mpg cyl disp hp drat wt qsec vs am gear carb
Mazda RX4 21.0 6 160.0 110 3.90 2.620 16.46 0 1 4 4
Mazda RX4 Wag 21.0 6 160.0 110 3.90 2.875 17.02 0 1 4 4
Datsun 710 22.8 4 108.0 93 3.85 2.320 18.61 1 1 4 1
Run Code Online (Sandbox Code Playgroud)
原始类是"data.frame".
> str(mtcars)
'data.frame': 32 obs. of 11 variables:
$ mpg : num 21 21 22.8 21.4 18.7 18.1 14.3 24.4 22.8 19.2 ...
$ …Run Code Online (Sandbox Code Playgroud) sessionInfo()
# R version 3.1.1 (2014-07-10)
# Platform: x86_64-apple-darwin10.8.0 (64-bit)
#
# attached base packages:
# [1] stats graphics grDevices utils datasets methods base
#
# other attached packages:
# [1] dplyr_0.3.0.2
#
# loaded via a namespace (and not attached):
# [1] assertthat_0.1 DBI_0.3.1 lazyeval_0.1.9 magrittr_1.0.1 parallel_3.1.1 Rcpp_0.11.3
# [7] tools_3.1.1
Run Code Online (Sandbox Code Playgroud)
packageVersion("dplyr")
# [1] ‘0.3.0.2’
iris[1:10,] %>% rename(petal_length = Petal.Length)
# Sepal.Length Sepal.Width petal_length Petal.Width Species
# 1 5.1 3.5 1.4 0.2 setosa
# 2 4.9 3.0 …Run Code Online (Sandbox Code Playgroud) 试图在SO问题上重现结果: dplyr:如何对group_by的结果应用do()?
这是数据
person = c('Grace', 'Grace', 'Grace', 'Rob', 'Rob', 'Rob')
foods = c('apple', 'banana', 'cucumber', 'spaghetti', 'cucumber', 'banana')
eaten <- data.frame(person, foods, stringsAsFactors = FALSE)
Run Code Online (Sandbox Code Playgroud)
我试图复制的结果是:
[[1]]
[,1] [,2] [,3]
[1,] "apple" "apple" "banana"
[2,] "banana" "cucumber" "cucumber"
[[2]]
[,1] [,2] [,3]
[1,] "spaghetti" "spaghetti" "cucumber"
[2,] "cucumber" "banana" "banana"
Run Code Online (Sandbox Code Playgroud)
产生上述结果的原始代码如下所示:
> eaten %>% group_by(person) %>% do(function(x) combn(x$foods, m = 2))
Error: Results are not data frames at positions: 1, 2
Run Code Online (Sandbox Code Playgroud)
尝试了几种使用do()函数的方法无济于事.
> eaten %>% group_by(person) %>% do(combn(.$foods, m …Run Code Online (Sandbox Code Playgroud) 我有一个产品数据框和生产它们的时间(天):
test <- structure(list(product = c("prod.1", "prod.2", "prod.3", "prod.4", "prod.5",
"prod.6", "prod.7", "prod.8", "prod.9", "prod.10", "prod.11", "prod.12", "prod.13",
"prod.14", "prod.15", "prod.16", "prod.17", "prod.18", "prod.19", "prod.20", "prod.21",
"prod.22", "prod.23", "prod.24", "prod.25", "prod.26", "prod.27", "prod.28", "prod.29",
"prod.30", "prod.31", "prod.32", "prod.33", "prod.34", "prod.35", "prod.36", "prod.37",
"prod.38", "prod.39", "prod.40", "prod.41", "prod.42", "prod.43", "prod.44", "prod.45",
"prod.46", "prod.47", "prod.48", "prod.49", "prod.50"), prodTime = c(4.03, 3.8, 3.75,
3.74, 3.72, 3.7, 3.66, 3.66, 3.66, 3.64, 3.63, 3.63, 3.63, 3.6, 3.6, 3.58, 3.58, 3.58,
3.57, 3.57, 3.57, 3.56, 3.56, …Run Code Online (Sandbox Code Playgroud)