小编rvl*_*rvl的帖子

S3调度`rbind`和`cbind`

我正在尝试rbind为特定类编写方法.这是一个简单的例子,它不起作用(至少对我而言):

rbind.character <- function(...) {
    do.call("paste", list(...))
}
Run Code Online (Sandbox Code Playgroud)

输入此函数后,我似乎可以确认它是R知道的有效方法:

> methods("rbind")
[1] rbind.character  rbind.data.frame rbind.rootogram* rbind.zoo*      
see '?methods' for accessing help and source code
Run Code Online (Sandbox Code Playgroud)

但是,如果我尝试使用它,则无法识别:

> rbind("abc", "xyz")
     [,1] 
[1,] "abc"
[2,] "xyz"
> #### compared with ####
> rbind.character("abc", "xyz")
[1] "abc xyz"
Run Code Online (Sandbox Code Playgroud)

帮助页面表示调度内部执行如下:

  1. 对于每个参数,我们从class属性中获取可能的类成员资格列表.
  2. 我们轮流检查每个班级,看看是否有适用的方法.
  3. 如果我们找到适用的方法,我们确保它与先前参数确定的任何方法相同.如果它是相同的,我们继续,否则我们立即转到默认代码.

有了rbind("abc", "xyz"),我相信所有这些标准都是满意的.给出了什么,我该如何解决?

r

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

对“qr()”的信心动摇

我在处理排名不足的情况时非常依赖该qr()函数,但最近遇到了一些它无法正常工作的示例。考虑下面的矩阵badX

badX <-
structure(c(-1.641906809157e-10, 0, 0, 0, 0, -0.5, 0, 0, -1.10482935525559e-16, 
            0, -3.06266685765538e-17, 0, -4.83736007092039e-17, 0, -3.14414492582296e-18, 
            -3.06158275836099e-18), dim = c(4L, 4L), dimnames = list(c("(Intercept)", 
            "A2", "A3", "B2"), NULL))
Run Code Online (Sandbox Code Playgroud)

我们不能使用以下方法反转该矩阵solve()

solve(badX)
## Error in solve.default(badX): system is computationally singular: reciprocal condition number = 5.55308e-18
Run Code Online (Sandbox Code Playgroud)

然而qr(),其相关例程认为该矩阵的秩为 4,并且可以对其求逆:

qr(badX)$rank
## [1] 4

qr.solve(badX)
##             [,1] [,2]          [,3]          [,4]
## [1,] -6090479645    0  2.197085e+10  7.366741e+10
## [2,]           0   -2  0.000000e+00  0.000000e+00
## [3,]           0 …
Run Code Online (Sandbox Code Playgroud)

r matrix qr-decomposition matrix-decomposition

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

Windows 10 Mail应用程序上订阅的日历?

如果您为Exchange服务器配置,Windows 10邮件应用程序也会显示您的日历.不知道是否可以添加订阅日历 - 即使用链接发送的共享日历webcal://...?我确定在"新帐户"选项中或通过互联网搜索找不到任何明显的内容

calendar webcal windows-10

6
推荐指数
3
解决办法
2万
查看次数