小编Jul*_*ian的帖子

R 和 Sparklyr:为什么简单的查询这么慢?

这是我的代码。我在数据块中运行它。

library(sparklyr)
library(dplyr)
library(arrow)

sc <- spark_connect(method = "databricks")
tbl_change_db(sc, "prod")
trip_ids <- spark_read_table(sc, "signals",memory=F) %>% 
            slice_sample(10) %>% 
            pull(trip_identifier)
Run Code Online (Sandbox Code Playgroud)

尽管我只查询 10 个样本,但该代码非常慢,需要几个小时才能运行。这是为什么?有没有办法提高性能?

谢谢你!

r apache-spark sparklyr

10
推荐指数
1
解决办法
583
查看次数

如何将data.table中的值映射到data.table(R)

我有两个map/data.tables.一个由键值组成,另一个由一些键组成.我想将第一个地图中的值映射到第二个地图的键.如何才能做到这一点?

这是一些示例代码:

map1<-data.table( k=c("A","B"), v=c(2,3) )
map2<-data.table( k2=c("A","B","A","A"))
Run Code Online (Sandbox Code Playgroud)

如何在map2中生成包含c(2,3,2,2)的新列v2?

r data.table

7
推荐指数
2
解决办法
2097
查看次数

为什么R的apply函数会将行与列混淆?

以下代码:

set.seed(0)
m<-matrix(data=runif(6),nrow=2)

apply(m,1,print)
apply(m,1,function(x) print(x) )
Run Code Online (Sandbox Code Playgroud)

得到:

[1] 0.8966972 0.3721239 0.9082078
[1] 0.2655087 0.5728534 0.2016819
          [,1]      [,2]
[1,] 0.8966972 0.2655087
[2,] 0.3721239 0.5728534
[3,] 0.9082078 0.2016819
Run Code Online (Sandbox Code Playgroud)

因此,一次打印按行逐行执行,另一次按列执行.为什么?根据我的理解,两次调用apply/print应该做同样的事情.

r

6
推荐指数
1
解决办法
65
查看次数

R - 将列表元素作为函数调用的参数传递

让我们从一些简单的代码开始:

require(randomForest)
randomForest(mpg~.,mtcars,ntree=10)
Run Code Online (Sandbox Code Playgroud)

这构建了一个由10棵树组成的随机森林.

我想要的是将参数存储在列表中,而不是进行函数调用.像这样的东西:

require(randomForest)
l<-list(ntree=10)
randomForest(mpg~.,mtcars,l[[1]])
Run Code Online (Sandbox Code Playgroud)

但是,这不起作用.错误消息是:

Error in if (ncol(x) != ncol(xtest)) stop("x and xtest must have same number of columns") : argument is of length zero
Run Code Online (Sandbox Code Playgroud)

这表明randomForest的参数xtest = NULL设置为10而不是ntree.

这是为什么?如何将参数ntree作为列表元素传递?

谢谢.

parameters r

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

获取postgresql中hstore数据的每行键数

我的postgresql数据库中有一个hstore列.数据库的每一行在hstore-column中具有不同数量的键/值.如何获得每行的键/值数?

sql postgresql hstore

4
推荐指数
1
解决办法
2037
查看次数

使用R和tripack-package绘制仅有三个点的Voronoi图

我尝试绘制三点的Voronoi图:

library(tripack)
x<-c(1.7,-2.2,0.5)
y<-c(-0.6,-0.2,0.8)
v<-voronoi.mosaic(x,y)
plot(v)
Run Code Online (Sandbox Code Playgroud)

然而,它只是显示一个空图.

print(v)
Run Code Online (Sandbox Code Playgroud)

得到:

voronoi mosaic:
nodes: (x,y): neighbours (<0: dummy node)
1: (-0.3238956,-1.120482): -1 -2 -3 
dummy nodes: (x,y)
1: (-0.3238956,-1.120482)
2: (-0.3238956,-1.120482)
3: (-0.3238956,-1.120482)
Run Code Online (Sandbox Code Playgroud)

这是一个错误吗?这有道理吗?根据我的理解,从三点构建Voronoi图表应该是完美的.

r

4
推荐指数
1
解决办法
291
查看次数

如何将参数传递给插入符号汇总函数

如何将参数传递给插入符号汇总函数?

例如, caret 的 twoClassSummary 函数具有以下签名: twoClassSummary(data, lev = NULL, model = NULL)

参数 lev 指定了我感兴趣的因子级别。现在我想告诉 caret 我对因子级别“false”的摘要感兴趣。就像是

  trainControl(summary=twoClassSummary(lev="false")) 
Run Code Online (Sandbox Code Playgroud)

不起作用。如何将参数传递给汇总函数?谢谢!

r r-caret

4
推荐指数
1
解决办法
775
查看次数

将每一行彼此连接

假设我们有一个简单的数据表:

d <- data.table(a=c(1,2,3),b=c("A","B","C"))
Run Code Online (Sandbox Code Playgroud)

它的内容是:

   a b
1: 1 A
2: 2 B
3: 3 C
Run Code Online (Sandbox Code Playgroud)

现在,我想将数据表的每一行彼此连接/合并。结果应如下所示:

   a b c d
1: 1 A 1 A
2: 1 A 2 B
3: 1 A 3 C
4: 2 B 1 A
5: 2 B 2 B
6: 2 B 3 C
7: 3 C 1 A
8: 3 C 2 B
9: 3 C 3 C
Run Code Online (Sandbox Code Playgroud)

因此,每一行基本上都与整个数据表绑定在一起。最有效的方法是什么?可以仅使用data.table语法完成此操作吗?

谢谢!

编辑:data.table的CJ方法确实建立了笛卡尔乘积,但仅用于向量,而不是表。

join r data.table

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

标签 统计

r ×7

data.table ×2

apache-spark ×1

hstore ×1

join ×1

parameters ×1

postgresql ×1

r-caret ×1

sparklyr ×1

sql ×1