我试图滞后矩阵:
> B = matrix( c(2, 4, 3, 1, 5, 7), nrow=3, ncol=2)
> B
[,1] [,2]
[1,] 2 1
[2,] 4 5
[3,] 3 7
> lag(B)
[,1] [,2]
[1,] 2 1
[2,] 4 5
[3,] 3 7
Run Code Online (Sandbox Code Playgroud)
为什么不lag(B)给:
> lag(B)
[,1] [,2]
[1,] 0 0
[2,] 2 1
[3,] 4 5
Run Code Online (Sandbox Code Playgroud) 我试图从父环境中删除一个对象.
rm_obj <- function(obj){
a <-deparse(substitute(obj))
print (a)
print(ls(envir=sys.frame(-1)))
rm(a,envir=sys.frame(-1))
}
> x<-c(1,2,3)
> rm_obj(x)
[1] "x"
[1] "rm_obj" "x"
Warning message:
In rm(a, envir = sys.frame(-1)) : object 'a' not found
Run Code Online (Sandbox Code Playgroud)
这将有助于澄清我对框架的误解.
我在R中安排了这样的数据:
indv time val
A 6 5
A 10 10
A 12 7
B 8 4
B 10 3
B 15 9
Run Code Online (Sandbox Code Playgroud)
对于每次每个人(indv),我想val从初始时间计算值()的变化.所以我最终得到这样的东西:
indv time val val_1 val_change
A 6 5 5 0
A 10 10 5 5
A 12 7 5 2
B 8 4 4 0
B 10 3 4 -1
B 15 9 4 5
Run Code Online (Sandbox Code Playgroud)
有人能告诉我怎么做这个吗?我可以用
ddply(df, .(indv), function(x)x[which.min(x$time), ])
Run Code Online (Sandbox Code Playgroud)
得到一张像这样的桌子
indv time val
A 6 5
B 8 4
Run Code Online (Sandbox Code Playgroud)
但是,我无法弄清楚如何制作一个列val_1,其中每个人的最小值匹配.但是,如果我可以这样做,我应该可以 …
我有
replicate(1000, t.test(rnorm(10)))
它的作用是从正态分布中抽取10号样本,对其执行一次t.test,并执行1000次.但对于我的任务,我只对p值感兴趣(问题是:零假设被拒绝了多少次).我如何仅获得p值,或者我可以添加已经说明零假设被拒绝多少次的内容(p值小于0.05的次数)
我已经转移到一个新的服务器和安装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文件
任何帮助,将不胜感激 …
我想用来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 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中使用,因为我使用它们来进一步分析输出.如果有人有任何建议,解决方法或更正,我很乐意尝试.
假设我有一个Tables使用colnames调用并且没有rownames 的矩阵列表.
Tables <- list(structure(c(0.810145949194718, 0.0792559803788517, 0.189854050805282,
0.920744019621148), .Dim = c(2L, 2L), .Dimnames = list(NULL,
c("e", "prod"))), structure(c(0.949326264941026, 0.24010922539329,
0.0506737350589744, 0.75989077460671), .Dim = c(2L, 2L), .Dimnames = list(
NULL, c("prod", "e"))))
Run Code Online (Sandbox Code Playgroud)
我希望rownames与colnames相同:
rownames(Tables[[1]])<- colnames(Tables[[1]])
rownames(Tables[[2]])<- colnames(Tables[[2]])
Run Code Online (Sandbox Code Playgroud)
我尝试过使用但lapply没有成功
lapply(Tables, function(x) rownames(x) <- colnames(x))
Run Code Online (Sandbox Code Playgroud)
我设法使用for循环
for(i in 1:length(Tables)){
rownames(Tables[[i]])<- colnames(Tables[[i]])
}
Tables # Expected result
[[1]]
e prod
e 0.81014595 0.1898541
prod 0.07925598 0.9207440
[[2]]
prod e
prod 0.9493263 0.05067374
e 0.2401092 0.75989077
Run Code Online (Sandbox Code Playgroud)
尽管如此,我想找到一种方法来使用*applybase中的任何或任何其他函数来避免 …
我在 R 中使用插入符包来预处理数据,例如:
> trans <- preProcess(data, method = "pca").
> transformedData <- predict(trans, data)
Run Code Online (Sandbox Code Playgroud)
这是我的问题,之后原始数据上的预测器名称丢失了,但缺少了 PC 列表。我怎样才能找到这些 PC 与我的原始预测变量之间的关系,你知道,这些预测变量上有一些负载或系数。
有人可以给我一个提示,更好地使用插入符号方法吗?谢谢!
我正在使用RODBC软件包从R连接到Oracle数据库但是我没有成功地合并来自不同数据库的表而没有"下载"表格(我不想下载它们因为它们太大了!).我想使用类似的东西:
DBa=odbcConnect(dsn="DatabaseA",uid="uid",pwd="pwd",readOnly="True")
DBb=odbcConnect(dsn="DatabaseB",uid="uid",pwd="pwd",readOnly="True")
sqldf("select a.year, sum(b.var) as sumVar
from sqlFetch(DBa,'tableA') a
sqlFetch(DBb,'tableB') b
where a.ID=b.ID
group by a.year")
Run Code Online (Sandbox Code Playgroud)
如果有人有想法,那将非常有帮助!提前谢谢了.
莱昂内尔