小编Jil*_*ina的帖子

忽略示例函数中的值或NA

我在R中有一个矩阵,我想从每一行中取一个随机样本.我的一些数据是在NA中,但在采用随机样本时,我不希望NA作为采样的选项.我怎么做到这一点?

例如,

a <- matrix (c(rep(5, 10), rep(10, 10), rep(NA, 5)), ncol=5, nrow=5)
a
     [,1] [,2] [,3] [,4] [,5]
[1,]    5    5   10   10   NA
[2,]    5    5   10   10   NA
[3,]    5    5   10   10   NA
[4,]    5    5   10   10   NA
[5,]    5    5   10   10   NA
Run Code Online (Sandbox Code Playgroud)

当我将样本函数应用于此矩阵以输出另一个矩阵时,我得到了

b <- matrix(apply(a, 1, sample, size=1), ncol=1)
b

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

相反,我不希望NA能够作为输出,并希望输出类似于:

b
     [,1]
[1,]   10
[2,]   10
[3,]   10
[4,]    5 …
Run Code Online (Sandbox Code Playgroud)

r sample matrix apply

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

删除属于指定长度因子的数据集的行

我有一个类似于以下的data.frame:

df <- data.frame(population = c("AA","AA","AA","BB","BB","CC","CC","CC"),
                 individual = c("A1","A2","A3","B1","B2","C1","C2","C3"),
                 Haplotype1 = rep(1:4,2),
                 Haplotype2 = rep(5:8,2))
 > df
  population individual Haplotype1 Haplotype2
1         AA         A1          1          5
2         AA         A2          2          6
3         AA         A3          3          7
4         BB         B1          4          8
5         BB         B2          1          5
6         CC         C1          2          6
7         CC         C2          3          7
8         CC         C3          4          8
Run Code Online (Sandbox Code Playgroud)

我想创建一个新的数据集,其中从数据集中省略由少于指定数量的个体组成的任何群体.例如,我想重新分析只有三个或三个以上人群的数据.以下是我想要的数据集:

> df <- df[!df$population=="BB",]
> df
  population individual Haplotype1 Haplotype2
1         AA         A1          1          5
2         AA         A2 …
Run Code Online (Sandbox Code Playgroud)

r

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

数据丢失滞后

我有关于州级别批准评级的数据集.我需要将其中一个变量滞后两年.

数据是年度的,跨越1970年至2008年.显然,如果我滞后数据,我将失去一些观察(即:1970年将无法找到1968年的数据)我很好地失去了那些观察,但是diff命令当我试图滞后时返回错误.

但是,当我运行滞后时,我得到以下错误:替换与数​​据不匹配:

> df$lagvar <- diff(df$var, lag=2)
Error in `$<-.data.frame`(`*tmp*`, "lagvar", value = c(-0.4262501,  : 
replacement has 230 rows, data has 232
Run Code Online (Sandbox Code Playgroud)

我四处寻找,但无法找到解决方案.关于如何解决这个问题的任何想法?

diff r missing-data

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

根据另一个数据框替换数据帧中的值

我有以下两个数据帧:

>df1<-data.frame(A=c(0,0,0),B=c(0,201,0),C=c(0,467,0))
  A   B   C
1 0   0   1
2 0 201 467
3 0   0   0

>df2<-data.frame(A=c(201,467),B=c('abc','def'))
    A   B
1 201 abc
2 467 def
Run Code Online (Sandbox Code Playgroud)

我想用df2中匹配的"B"值替换df1中的值,创建一个如下所示的数据帧:

   A   B   C
1 NA  NA  NA
2 NA abc def
3 NA  NA  NA
Run Code Online (Sandbox Code Playgroud)

我可以使用以下代码逐列完成此操作:

>df2$B[match(df1$B,df2$A)]
Run Code Online (Sandbox Code Playgroud)

不幸的是,我正在使用大量数据集,因此希望一次匹配所有列.任何帮助将非常感激.

r

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

热图中的错误.2(gplots)

我已经转移到一个新的服务器和安装R版本3.0上.(gplots库不再适用于2.14)

使用适用于版本2.14的脚本,我现在遇到生成热图的问题.

在R版本3中,我收到一个错误:

Error in lapply(args, is.character) : node stack overflow
Error in dev.flush() : node stack overflow
Error in par(op) : node stack overflow
Run Code Online (Sandbox Code Playgroud)

在R版本2.14中,我收到一个错误:

Error: evaluation nested too deeply: infinite recursion / options(expressions=)?
Run Code Online (Sandbox Code Playgroud)

我可以通过增加选项(表达式= 500000)来解决

在R版本3中,增加此选项无法解决问题.我仍然坚持同样的错误.

两个脚本都是相同的:

y=read.table("test", row.names=1, sep="\t", header=TRUE)
hr <- hclust(dist(as.matrix(y)))
hc <- hclust(dist(as.matrix(t(y))))
mycl <- cutree(hr, k=7); mycolhc <- rainbow(length(unique(mycl)), start=0.1, end=0.9); mycolhc     <- mycolhc[as.vector(mycl)] 

install.packages("gplots")
library("gplots", character.only=TRUE)
myheatcol <- redgreen(75)

pdf("heatmap.pdf")
heatmap.2(as.matrix(y), Rowv=as.dendrogram(hr), Colv=as.dendrogram(hc), col=myheatcol,scale="none", density.info="none", trace="none", RowSideColors=mycolhc, labRow=FALSE)
dev.off()
Run Code Online (Sandbox Code Playgroud)

其中"test"是带有标题和行名称以及40*5000 0/1矩阵的tdl文件

任何帮助,将不胜感激 …

r heatmap lapply

5
推荐指数
2
解决办法
6196
查看次数

如何从矩阵的列构造函数调用pmax

我想用来pmax计算矩阵的行方式最大值A:

A = matrix(sample(1:20),10,2)
pmax(A[,1],A[,2])
Run Code Online (Sandbox Code Playgroud)

这很好用.但问题是我不知道A的大小,所以调用pmax应该能够按列拆分矩阵并将每列作为参数提供.怎么做?例如,我可能在下一个例子中有

A = matrix(sample(1:20),5,4)
Run Code Online (Sandbox Code Playgroud)

但我不想每次都要手工改写

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

事实上,我不能因为A程序开始之前的大小是未知的.

r matrix

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

在R中打包arules:获取左侧只有一个项目的规则

我在R中使用包arules来生成关联规则.我想限制规则,以便在左侧只有一个特定的元素,让我们称之为"potatoe".

如果我这样做:

rules <- apriori(dtm.mat, parameter = list(sup = 0.4, conf =
0.9,target="rules"), appearance = list(lhs = c("potatoe")))
Run Code Online (Sandbox Code Playgroud)

我在lhs上得到"potatoe",但也包括所有其他类型的东西.如何强制规则只包含一个元素?参数maxlen没有做我想要的,因为,据我所知,我不能指定应用于左边元素的maxlen.

r arules

5
推荐指数
2
解决办法
6590
查看次数

更好的方法是在对称矩阵中用零替换矩阵元素

我有一个0对角线对称矩阵X,例如

          [1]        [2]       [3]        [4]        [5]    
[1]  0.00000000 0.07065048 0.1019865 0.23641082 0.23641082 
[2]  0.07065048 0.00000000 0.0000000 0.23641082 0.23641082 
[3]  0.10198654 0.00000000 0.0000000 0.00000000 0.23641082 
[4]  0.23641082 0.23641082 0.0000000 0.00000000 0.08870087 
[5]  0.23641082 0.23641082 0.2364108 0.08870087 0.00000000 
Run Code Online (Sandbox Code Playgroud)

我需要根据第二个矩阵Y用0替换它的一些元素:

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

因此X [3,2],X [4,3],X [1,2]和对称性的X [2,3],X [3,4],X [2,1]应该被替换零的.

我想出了这个解决方案:

for (i in 1:nrow(Y)) {
  X[Y[i,1], Y[i,2]] <- 0
  X[Y[i,2], Y[i,1]] <- 0 
}
Run Code Online (Sandbox Code Playgroud)

这是诀窍,但我想知道是否有更好,更有效的方法来使用类似应用的函数进行编码.

非常感谢您的关注.

replace r matrix

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

在R 3.0.+中使用.Call()时出错

我正在尝试使用一种功能,使用逻辑曝光链接功能模拟鸟类的嵌套成功.

当我使用R 3.0.0或3.0.1中的上面的示例代码运行此函数时,我收到错误:

Error in .Call("logit_mu_eta", eta, PACKAGE = "stats") : 
  "logit_mu_eta" not available for .Call() for package "stats"
Run Code Online (Sandbox Code Playgroud)

但是,它在R 2.15.3中工作正常.

我希望这可以在更新版本的R中使用,因为我使用它们来进一步分析输出.如果有人有任何建议,解决方法或更正,我很乐意尝试.

r

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

从 R 中的 Shapiro.test() 中提取信息

我正在shapiro.test()R 中使用来测试数据集的正态性。我想从中提取 w 统计量和 p 值,以便我可以在某个地方使用它。是否可以?我怎样才能做到这一点?

r

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

标签 统计

r ×10

matrix ×3

apply ×1

arules ×1

diff ×1

heatmap ×1

lapply ×1

missing-data ×1

replace ×1

sample ×1