我正在尝试构建一些机器学习模型,
所以我需要一个训练数据和一个验证数据
所以假设我有N个例子,我想在数据框中选择随机x个例子.
例如,假设我有100个例子,我需要10个随机数,有没有办法(有效地)为我生成10个随机INTEGER数,从我的样本数据中提取训练数据?
我尝试使用while循环,并慢慢改变重复的数字,但运行时间不是很理想,所以我正在寻找一种更有效的方法来做到这一点.
有人可以帮忙吗?
在R中,is.*我能想到的几乎所有功能都有相应的功能as.*.有一个is.na但没有as.na.为什么不,如果这样的功能有意义,你将如何实现?
我有一个载体x,可以是logical,character,integer,numeric 或complex,我想将其转换为同一类别和长度的矢量,但充满了适当的:NA,NA_character_,NA_integer_,NA_real_,或NA_complex_.
我目前的版本:
as.na <- function(x) {x[] <- NA; x}
Run Code Online (Sandbox Code Playgroud) 我正在寻找一种组合两个矩阵的通用方法,以便两个初始矩阵中的列在新矩阵中交替
col1m1 ... col1m2 ... col2m1 ... col2m2 ... col3m1 ... col3m2 ......
例如:
matrix.odd <- matrix(c(rep(1,3),rep(3,3),rep(5,3)),nrow=3,ncol=3)
matrix.even <- matrix(c(rep(2,3),rep(4,3),rep(6,3)),nrow=3,ncol=3)
# would look like
matrix.combined <- matrix(c(rep(1,3),rep(2,3),rep(3,3),rep(4,3),rep(5,3),rep(6,3)),
nrow=3,ncol=6)
Run Code Online (Sandbox Code Playgroud)
我正在寻找一种通用方法,因为我将使用超过3列的矩阵组合.我已经尝试了一些for循环和一些if语句,但它并没有真正为我而来.关于将矩阵与随机和交替相结合的搜索也没有被证明是富有成效的.有什么想法吗?
R 3.1.0已经推出,其中一项新功能如下:
type.convert()(因此默认情况下read.table())在表示数字输入时返回字符向量或因子,因为双精度会失去准确性.同样对于复杂的输入.
举个例子:
df <- read.table(text = "num1 num2
1.1 1.1234567890123456
2.2 2.2
3.3 3.3", header = TRUE)
sapply(df, class)
# num1 num2
# "numeric" "factor"
Run Code Online (Sandbox Code Playgroud)
与以前的版本,read.table将返回两个数字列.
对于那些喜欢我的人来说,关心这种变化,可以做些什么来保持旧的行为呢?
注意:我想要一个不对输入数据做出假设的通用解决方案,即不建议我colClasses = "numeric"在上面的例子中使用.谢谢.
我想创建一个2D矩阵列表
> x
[,1] [,2]
[1,] 1 6
[2,] 2 7
[3,] 3 8
[4,] 4 9
[5,] 5 10
> y
[,1] [,2]
[1,] 301 306
[2,] 302 307
[3,] 303 308
[4,] 304 309
[5,] 305 310
> MATS<-c(x,y)
> MATS[1]
[1] 1
Run Code Online (Sandbox Code Playgroud)
我希望能够将MATS [1]称为x ...
给出两个整数:
a <- 1L
b <- 1L
Run Code Online (Sandbox Code Playgroud)
正如我所料,添加,减去或乘以它们也会给出一个整数:
class(a + b)
# [1] "integer"
class(a - b)
# [1] "integer"
class(a * b)
# [1] "integer"
Run Code Online (Sandbox Code Playgroud)
但除以它们给出一个数字:
class(a / b)
# [1] "numeric"
Run Code Online (Sandbox Code Playgroud)
我想我可以理解为什么:因为整数的其他组合(例如a <- 2L和b <- 3L)会返回一个数字,所以总是返回一个数字更常见.
求取指数:
class(a ^ b)
# [1] "numeric"
Run Code Online (Sandbox Code Playgroud)
这个对我来说有点意外.谁能解释为什么它是这样设计的?
我有两个时间序列,我用它ccf来找到它们之间的互相关.
ccf(ts1, ts2)列出所有时间滞后的互相关.如何在不手动查看数据的情况下找到导致最大相关性的滞后?
在R中,我可以"手动"设置环境变量,例如:
Sys.setenv(TODAY = "Friday")
Run Code Online (Sandbox Code Playgroud)
但是,如果环境变量名称和值存储在R对象中会怎样?
var.name <- "TODAY"
var.value <- "Friday"
Run Code Online (Sandbox Code Playgroud)
我写了这个:
expr <- paste("Sys.setenv(", var.name, " = '", var.value, "')", sep = "")
expr
# [1] "Sys.setenv(TODAY = 'Friday')"
eval(parse(text = expr))
Run Code Online (Sandbox Code Playgroud)
哪个确实有效:
Sys.getenv("TODAY")
# 1] "Friday"
Run Code Online (Sandbox Code Playgroud)
但我发现它很难看.有没有更好的办法?谢谢.
我在R中有一个数组,由这样的函数创建:
A <- array(data=NA, dim=c(2,4,4), dimnames=list(c("x","y"),NULL,NULL))
Run Code Online (Sandbox Code Playgroud)
我想沿着一个维度选择,所以对于上面的例子,我会:
A["x",,]
dim(A["x",,]) #[1] 4 4
Run Code Online (Sandbox Code Playgroud)
有没有办法概括,如果我事先不知道我的数组可能有多少维度(除了我要选择的命名的维度)?我想编写一个函数来获取可能格式化为A的输入,或者:
B <- c(1,2)
names(B) <- c("x", "y")
C <- matrix(1, 2, 2, dimnames=list(c("x","y"),NULL))
Run Code Online (Sandbox Code Playgroud)
一般背景是我正在研究ODE模型,因此对于deSolve的ODE函数,它必须采用具有当前状态的单个命名向量.对于其他一些函数,比如计算相位平面/方向场,使用更高维数组来应用微分方程更为实际,我希望避免使用相同函数的多个副本,只需使用不同的函数我想要选择的维度之后的逗号数量.
说我有一个载体,例如,x <- 1:10,然后x[0]返回相同类作为一个零长度矢量x,在这里integer(0).
我想知道这个选择背后是否有原因,而不是抛出一个错误,或者NA像x[11]那样回来?此外,如果您能想到x[0]返回integer(0)有用的情况,感谢您将其包含在您的答案中.
r ×10
matrix ×2
arrays ×1
correlation ×1
exponent ×1
integer ×1
list ×1
read.table ×1
time-series ×1