小编flo*_*del的帖子

在R中创建一个特定的矩阵

有没有人知道在R中创建如下的矩阵的快速方法

     [,1] [,2] [,3] [,4]
[1,]    1    1    1    1
[2,]    1    2    2    2
[3,]    1    2    3    3
[4,]    1    2    3    4
Run Code Online (Sandbox Code Playgroud)

上面的矩阵是4x4,我想创建类似10000x10000的东西.

r matrix

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

从矩阵中提取后访问丢失的列名称

我有一个矩阵:

a<-c(0,1,3,5,56,3)
b<-c(1,4,3,10,3,50)
c<-cbind(a,b)
c<-as.matrix(c)
Run Code Online (Sandbox Code Playgroud)

然后我创建了一个c的子集:

d<-c[1,1]
Run Code Online (Sandbox Code Playgroud)

我想获得d的专栏名称.colnames(d)不起作用.

r matrix

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

加快手工制作的Cox模特适合(vs`s survival :: coxph`)

下面,我将R函数的结果与我自己的代码进行比较.该算法简单地包括最大化许多参数的函数(这里,19).我的代码定义了函数和nlm优化用途.幸运的是,两者都返回相同的结果.但是,R功能非常快.因此,我怀疑我可以比使用nlm(或R中的类似优化例程)做得更好.任何的想法?


以下是一些可以使用Cox模型的生存数据.为此,需要最大化部分对数似然(维基百科链接中的第3个等式).

R,这可以用coxph()(部分survival包)完成:

> library(survival)
> fmla <- as.formula(paste("Surv(time, event) ~ ", 
+                          paste(names(data)[-(1:3)], collapse=" +")))
> mod <- coxph(formula=fmla, data=data)
> round(mod$coef, 3)
    x1     x2     x3     x4     x5     x6     x7     x8     x9    x10    x11    x12    x13    x14    x15 
-0.246 -0.760  0.089 -0.033 -0.138 -0.051 -0.484 -0.537 -0.620 -0.446 -0.204 -0.112 -0.089 -0.451  0.043 
   x16    x17    x18    x19 
 0.106 -0.015 -0.245 -0.653
Run Code Online (Sandbox Code Playgroud)

这可以通过显式写入部分对数似然并使用一些数值优化例程来检查.这是一些粗略的代码来完成这项工作.

代码已根据我收到的评论进行了编辑

> #------ minus …
Run Code Online (Sandbox Code Playgroud)

optimization r

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

R对象的泛化,可以是data.frame或矩阵

我有一些与编写可以在矩阵和data.frames上工作的函数有关的问题.想象一下例如:

DoubleThatThing <- function(thing) {
   stopifnot(is.matrix(thing) | is.data.frame(thing))
   2 * thing
}
Run Code Online (Sandbox Code Playgroud)

我的问题是:

  1. 是否存在矩阵或data.frame对象的通用术语?东西来取代ThingDoubleThatThing.

  2. 是否有一个普遍接受或广泛使用的变量名称thing

  3. is.matrix(thing) | is.data.frame(thing)测试此类对象的最佳方法吗?

r matrix dataframe

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

R:处理列表,计算每个元素值之间的差异

我有一个名为good的列表,我想计算每个向量中两个值之间的差异.

good[1:2]
[[1]] 
 [1]    8   16   28   38   53
[[2]]
 [1]    1    7    9   16   40 
Run Code Online (Sandbox Code Playgroud)

所以我会得到另一个清单

good_dif1[1:2] 
[[1]]
 [1] 8 12 10 15 
[[2]]
 [2] 6 2 7 24
Run Code Online (Sandbox Code Playgroud)

如果我想要将NA插入第一个值,我该怎么做?

所以我会得到另一个清单

good_dif2[1:2]
[[1]] 
 [1] NA 8 12 10 15 
[[2]] 
 [2] NA 6 2 7 24 
Run Code Online (Sandbox Code Playgroud)

r

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

对一个向量中的值进行重新编码,以最大化另一向量中相同数字的对的数量

我有下表,该表original_table是通过比较相同索引 和 的数字对的频率得出的vector_1vector_2

vector_1 <- c(5, 6, 5, 4, 6, 6, 4, 1, 6, 7, 5, 3, 3, 4, 4, 7, 7, 7, 2, 7, 2, 6, 1)
vector_2 <- c(1, 2, 1, 3, 4, 4, 4, 2, 4, 7, 2, 5, 5, 3, 3, 6, 7, 7, 6, 3, 6, 7, 2)
original_table <- table(vector_1, vector_2)
str(original_table)

        vector_2
vector_1 1 2 3 4 5 6 7
       1 0 2 0 0 0 0 0 …
Run Code Online (Sandbox Code Playgroud)

optimization r matrix

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

了解&&运算符何时短路

也许我错过了一些明显的东西.

在R中,TRUE && NAevalues到NA.这对我来说没有意义,因为&&应该从左到右进行评估,并在其中一个条件成立时立即停止.

r short-circuiting

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

在R中创建一个带循环的矩阵

我试图在R中创建一个循环,在每两行中将我的矩阵替换为0×1,但我只能创建一个数字为1的矩阵.我不知道如何快速正确地实现它!

R代码

i<-1
r<-1
l<-1
repeat{
    while(i<3){
        if(l<7) {
            r<-rbind(r,1) 
            l<-l+1
        }else{
            r<-cbind(r,1)
            i<-i+1
            l<-1
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

开始示例矩阵

0   0   0
0   0   0
0   0   0
0   0   0
0   0   0
0   0   0
Run Code Online (Sandbox Code Playgroud)

最终矩阵:

1   0   0
1   0   0
0   1   0
0   1   0
0   0   1
0   0   1
Run Code Online (Sandbox Code Playgroud)

r matrix

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

基于 R 中标准偏差的子集

我有一个数据框,它由每个观察的变量列组成,这些列是行。我需要修剪这些数据以删除不需要的观察结果。

我通常如何做到这一点 -

trimmed_stats <- ddply(.data = data, .(pos), subset,
                       !AvgGFP > 100 &
                       !AvgRFP > 60 &
                       !Area < 220 &
                       !Area > 2000 &
                       !DeviationsRFP > 20 &
                       !DeviationGFP > 20)
Run Code Online (Sandbox Code Playgroud)

...基本上删除不符合特定标准的数据。

但是,当我查看多个数据集时,这些特定数字会因数据集而异。

我想要做的是使用与平均值的标准偏差执行“修剪”。

例如,让我们采用一个简单的数据框,每个观察值都有一个变量 -

p <- data.frame(obs = c(1:1000), var1 = rnorm(1000, 0 , 5))
sd(p[,2])
[1] 4.91213
Run Code Online (Sandbox Code Playgroud)

所以 1 个标准差是 4.91213,如何删除 var1 不在均值 1 个标准差范围内的所有行?

r trim dataframe

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

查找逻辑矩阵的每一行是否至少有一个TRUE

有没有办法转换这些数据:

        (Intercept) Timecoursecdc15 Timecoursecdc28 Timecourseclb Timecoursecln
YAL001C       FALSE           FALSE           FALSE         FALSE         FALSE
YAL002W       FALSE           FALSE           FALSE         FALSE         FALSE
YAL003W       FALSE           FALSE           FALSE         FALSE         FALSE
YAL004W       FALSE           FALSE           FALSE         FALSE         FALSE
YAL005C       FALSE           FALSE           FALSE         FALSE         FALSE
YAL007C       FALSE           FALSE           FALSE         FALSE          TRUE
Run Code Online (Sandbox Code Playgroud)

这样的事情:

  YPR163C   YPR164W   YPR165W   YPR166C   YPR167C   YPR168W   YPR169W   YPR170C 
    FALSE     FALSE     FALSE      TRUE     FALSE     FALSE     FALSE     FALSE 
  YPR171W   YPR172W   YPR173C   YPR174C   YPR175W   YPR176C   YPR177C   YPR178W 
    FALSE     FALSE     FALSE     FALSE     FALSE     FALSE     FALSE     FALSE 
  YPR179C   YPR180W   YPR181C   YPR182W   YPR183W …
Run Code Online (Sandbox Code Playgroud)

r matrix

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

标签 统计

r ×10

matrix ×6

dataframe ×2

optimization ×2

short-circuiting ×1

trim ×1