相关疑难解决方法(0)

与dplyr R的笛卡尔积

我正试图找到笛卡尔积的dplyr函数.我有两个简单的data.frame,没有公共变量:

x <- data.frame(x=c("a","b","c"))
y <- data.frame(y=c(1,2,3))
Run Code Online (Sandbox Code Playgroud)

我想重现一下结果

merge(x,y)

  x y
1 a 1
2 b 1
3 c 1
4 a 2
5 b 2
6 c 2
7 a 3
8 b 3
9 c 3
Run Code Online (Sandbox Code Playgroud)

我已经找到了这个(例如这里这里)没有找到任何有用的东西.

非常感谢你

r cartesian-product dplyr

20
推荐指数
4
解决办法
6707
查看次数

将数据帧整体复制n次

我试图复制一个数据帧(动物园对象)50次作为一个整体,并将结果作为一个矩阵,但我尝试过的所有命令似乎都不成功.我可以轻松编写一个可以执行此操作的函数,但我希望结果可以轻松实现rep.

以下面的例子为例

 x <- zoo(data.frame(A = c(1,2,3,4,5,6), B = c(7,8,9,10,11,12), C = c(13,14,15,16,17,18)), order.by = seq(as.Date("2012-01-01"), as.Date("2012-06-01"), by  = "month"))

 #> x
 #           A  B  C
 #2012-01-01 1  7 13
 #2012-02-01 2  8 14
 #2012-03-01 3  9 15
 #2012-04-01 4 10 16
 #2012-05-01 5 11 17
 #2012-06-01 6 12 18
Run Code Online (Sandbox Code Playgroud)

我们试着复制x2次.我要找的最终结果是:

 #      [,1] [,2] [,3]
 # [1,]    1    7   13
 # [2,]    2    8   14
 # [3,]    3    9   15
 # [4,]    4   10   16
 # …
Run Code Online (Sandbox Code Playgroud)

r dataframe rep

13
推荐指数
3
解决办法
9833
查看次数

使用dplyr full_join为data.frame展开expand.grid

我正在尝试获得类似于的功能expand.grid并在上工作data.frame

我在替代方法中为data.frames的expand.grid找到了一种解决方案,该解决方案 使用merge函数来实现此目的。

由于mergedplyrAlternative 相比速度相当慢full_join,因此我尝试使用它full_join来实现此功能,但无法正确完成。这是我失败的示例:

df <- data.frame(attribute = paste0('attr', rep(1:5, each=2)),
                 value = paste0(rep(1:5, each=2), rep(c('A','B'), 2)),
                 score = runif(10))
df
   attribute value      score
1      attr1    1A 0.75600171
2      attr1    1B 0.07086242
3      attr2    2A 0.92403325
4      attr2    2B 0.63414169
5      attr3    3A 0.78763834
6      attr3    3B 0.88576568
7      attr4    4A 0.75998967
8      attr4    4B 0.25205845
9      attr5    5A 0.99304728
10 …
Run Code Online (Sandbox Code Playgroud)

merge join r dplyr

5
推荐指数
1
解决办法
1591
查看次数

将数据帧的行作为参数传递给函数,同时保持其他参数不变

数据帧的Pass行上作为R中函数的参数进行跟进,列名指定参数

我想用不同的参数组合训练以下模型:

library(xgboost)
library(Matrix)

df <- data.frame(y = sample(0:1, 1000, replace = TRUE),
                 a = rnorm(1000),
                 b = rnorm(1000),
                 c = rnorm(1000),
                 d = rnorm(1000))

train <- sparse.model.matrix(object = y~.-1, data = df)

model <- xgboost(data = train,
                 label = df$y,
                 # parameters
                 nrounds = 10, 
                 subsample = 0.5,
                 colsample_bytree = 0.8)
Run Code Online (Sandbox Code Playgroud)

我创建的参数网格,我想网格的行通入xgboost功能,同时保持datalabel参数不变。

param <- expand.grid(nrounds = c(10, 50, 100),
                     subsample = c(0.5, 0.8, 0.9),
                     colsample_bytree = c(0.8))
Run Code Online (Sandbox Code Playgroud)

我想使用列名来传递参数以指定它们(如果列名不是一个选项,则列的顺序也可以这样做),因为这将使调用可扩展用于不同的功能。

r

5
推荐指数
2
解决办法
607
查看次数

总结不再分组

我认为dplyr太棒了.但是我最近更新了这个软件包,似乎总结不再为我分组.类似于以下用于在升级之前按组汇总的代码:

iris_tdt <- tbl_dt(iris)
iris_tdt %.% group_by(Species) %.% summarise(avg_petal_width = mean(Petal.Width))

  avg_petal_width
1        1.199333
Run Code Online (Sandbox Code Playgroud)

这用于输出具有Species和avg_petal_width的表.现在,物种列似乎被删除,avg_petal_width聚合为单个值.group_by似乎正在工作,所以我猜这是一个总结的问题.

grp <- group_by(iris_tdt,Species)
groups(grp)

[[1]]
Species
Run Code Online (Sandbox Code Playgroud)

甚至Vignette的例子都没有正常工作.

hflights_df <- tbl_df(hflights)
planes <- group_by(hflights_df, TailNum)
delay <- summarise(planes,
  dist = mean(Distance, na.rm = TRUE),
  delay = mean(ArrDelay, na.rm = TRUE))

delay
      dist    delay
1 787.7832 7.094334
Run Code Online (Sandbox Code Playgroud)

任何建议将不胜感激.

packageDescription("dplyr")$Version #--> 0.1.2
R.version.string #--> "R version 3.0.2 (2013-09-25)"
Run Code Online (Sandbox Code Playgroud)

r dplyr

2
推荐指数
1
解决办法
162
查看次数

标签 统计

r ×5

dplyr ×3

cartesian-product ×1

dataframe ×1

join ×1

merge ×1

rep ×1