availableTransports
(或类似{
"Url":"/api/signalr",
"ConnectionToken":"XXX",
"ConnectionId":"XXX",
"KeepAliveTimeout":20.0,
"DisconnectTimeout":30.0,
"ConnectionTimeout":110.0,
"TryWebSockets":false,
"ProtocolVersion":"1.2",
"TransportConnectTimeout":5.0,
"LongPollDelay":0.0
}
的{{1}}包中的任何内容是否都等同于Apache Spark的PolynomialExpansion?
例如,如果我有3个变量(例如tidyverse
,tidyverse
和R
),我想传递变量的范围并使其交互(例如, v1
* v2
,v3
* v1
,...)自动彼此之间。
答案 0 :(得分:1)
Base R提供了formula
(请参见?formula
的“详细信息”部分)界面,以非常简洁的方式定义模型。 (tidyverse
本身使用公式来实现很多东西。
例如(如@ user8371915所述)
model.matrix(~ b + a:c - 1,
data_frame(a = 1:10,
b = 1:10,
c = 1:10))
将为您提供一个易于通过dplyr::as_data_frame
“投射”的模型矩阵:
b a:c
1 1 1
2 2 4
3 3 9
4 4 16
5 5 25
6 6 36
7 7 49
8 8 64
9 9 81
10 10 100
attr(,"assign")
[1] 1 2
同样,?formula
的帮助会告诉您:
^运算符指示相交至指定程度。例如(a + b + c)^ 2与(a + b + c)*(a + b + c)相同,后者又扩展为包含a,b和c的主要效应以及它们的第二个效应的公式顺序互动
因此,以下内容将提供定义多项式展开式(包括截距)的正式方法
model.matrix(~ (a + b + c)^3,
data_frame(a = 1:10,
b = 1:10,
c = 1:10))
formula
是R中最强大的概念之一。
编辑:添加不带拦截的二度示例
aDataFrame <- data_frame(v1 = 1:10,
v2 = 1:10,
v3 = 1:10,
v4 = 1:10)
model.matrix(~ (.)^2 - . - 1, aDataFrame)
v1:v2 v1:v3 v1:v4 v2:v3 v2:v4 v3:v4
1 1 1 1 1 1 1
2 4 4 4 4 4 4
3 9 9 9 9 9 9
4 16 16 16 16 16 16
5 25 25 25 25 25 25
6 36 36 36 36 36 36
7 49 49 49 49 49 49
8 64 64 64 64 64 64
9 81 81 81 81 81 81
10 100 100 100 100 100 100
attr(,"assign")
[1] 1 2 3 4 5 6