我想编写一个函数,其输入是一个方形矩阵,它返回一个方形矩阵,从右上角到左下角的数字被保留,其他数字为零.
例如,假设A是下面的4*4矩阵.(抱歉,我不知道如何输入矩阵表达式)
[1,2,3,4]
[5,6,7,8]
[9,10,11,12]
[13,14,15,16]
Run Code Online (Sandbox Code Playgroud)
如何在没有任何循环的情况下在R中编写函数将矩阵转换为此?
[0,0,0,4]
[0,0,7,0]
[0,10,0,0]
[13,0,0,0]
Run Code Online (Sandbox Code Playgroud) roots <- polyroot(c(5, 4, 3, 2, 1))
Run Code Online (Sandbox Code Playgroud)
我想按假想部分的升序对根进行排序。默认情况下,该sort函数按实部的升序对其进行排序。我已经阅读了文档,但仍然不知道如何调整参数或编写命令。有人可以帮忙吗?
我有一个日期对象如下:
'2013-01'
'2013-02'
...
Run Code Online (Sandbox Code Playgroud)
例如,如何在保持月份不变的情况下从 2013 年减去 1 年
'2012-01'
'2012-02'
...
Run Code Online (Sandbox Code Playgroud) 我正在改写这个scale功能.我想获得数据集树的相同结果.但是当我运行代码时,我得到一个非常奇怪的结果.
z_function = function(x){
(x - mean(x))/sd(x)}
scale_function = function(x){
result = apply(x,2,z_function)
att_mean = apply(x,2,mean)
att_sd = apply(x,2,sd)
attributes(result) = list("scaled:center" = att_mean,"scaled:scale"= att_sd)
result
}
scale_function(trees)
Run Code Online (Sandbox Code Playgroud)
预期结果:
# Girth Height Volume
# [1,] -1.57685421 -0.9416472 -1.20885469
# [2,] -1.48125614 -1.7263533 -1.20885469
# [3,] -1.41752409 -2.0402357 -1.21493821
# [4,] -0.87580169 -0.6277648 -0.83775985
# [5,] -0.81206964 0.7847060 -0.69175532
# [6,] -0.78020362 1.0985884 -0.63700362
# [7,] -0.71647157 -1.5694121 -0.88642802
# [8,] -0.71647157 -0.1569412 -0.72825645
# [9,] -0.68460554 0.6277648 -0.46058149 …Run Code Online (Sandbox Code Playgroud)