我有一个流量数据矢量(29个数据)和一个3D矩阵数据(360*180*29)
我想找到单个矢量和3D矢量之间的相关性.相关矩阵的大小为360*180.
> str(ScottsCk_flow_1981_2010_JJA)
num [1:29] 0.151 0.644 0.996 0.658 1.702 ...
> str(ssta_winter)
num [1:360, 1:180, 1:29] NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN ...
> summary(ssta_winter)
Min. 1st Qu. Median Mean 3rd Qu. Max. NA's
-2.8 -0.2 0.1 0.2 0.6 6.0 596849.0
Run Code Online (Sandbox Code Playgroud)
以上是矢量和3D矩阵的结构.3D矩阵有许多值为Null.
> for (i in 1:360) {
+ for(j in 1:180){
+ cor_ScottsCk_SF_SST_JJA[i,j] = cor(ScottsCk_flow_1981_2010_JJA,ssta_winter[i,j,])
+ }
+ }
There were 50 or more warnings (use warnings() to see the first 50)
Run Code Online (Sandbox Code Playgroud)
上面这部分代码是找到相关性的代码.但它提供了警告 …
从Oracle虚拟盒加载图像时出现此错误.我该如何解决?我通过远程桌面连接将虚拟机4.3.12安装到Windows 7 64位,32G RAM计算机上.

我查看了英特尔可视化设置,它对硬件可视化说"是".

我在网上看到这个问题看起来像是同一个问题.但我正在使用远程桌面控制,所以我无法在重启页面上更改设置.重新启动此计算机时,我将自动注销.
我想知道如何约束某些参数lm()以获得正系数.有一些包或函数(例如display)可以使所有系数和拦截为正.
例如,在这个例子中,我只想强迫x1并x2具有正系数.
x1=c(NA,rnorm(99)*10)
x2=c(NA,NA,rnorm(98)*10)
x3=rnorm(100)*10
y=sin(x1)+cos(x2)-x3+rnorm(100)
lm(y~x1+x2+x3)
Call:
lm(formula = y ~ x1 + x2 + x3)
Coefficients:
(Intercept) x1 x2 x3
-0.06278 0.02261 -0.02233 -0.99626
Run Code Online (Sandbox Code Playgroud)
我试过功能nnnpls()包nnls,它可以轻松控制系数符号.遗憾的是,由于数据中的NA问题,我无法使用它,因为此函数不允许NA.
我看到函数NA可用于应用约束但我无法使其工作.
有人能让我知道我该怎么办?
我试图实现Chebyshev过滤器以平滑时间序列但不幸的是,数据系列中有NA.
例如,
t <- seq(0, 1, len = 100)
x <- c(sin(2*pi*t*2.3) + 0.25*rnorm(length(t)),NA, cos(2*pi*t*2.3) + 0.25*rnorm(length(t)))
Run Code Online (Sandbox Code Playgroud)
我正在使用Chebyshev过滤器: cf1 = cheby1(5, 3, 1/44, type = "low")
我试图过滤排除NAs的时间序列,但不会弄乱订单/位置.所以,我已经尝试过na.rm=T,但似乎没有这样的论点.然后
z <- filter(cf1, x) # apply filter
Run Code Online (Sandbox Code Playgroud)
感谢你们.
我是R的新手,真的不确定如何在日期框架中过滤数据。
我创建了一个包含两列的数据框,包括每月日期和相应的温度。它的长度为324。
> head(Nino3.4_1974_2000)
Month_common Nino3.4_degree_1974_2000_plain
1 1974-01-15 -1.93025
2 1974-02-15 -1.73535
3 1974-03-15 -1.20040
4 1974-04-15 -1.00390
5 1974-05-15 -0.62550
6 1974-06-15 -0.36915
Run Code Online (Sandbox Code Playgroud)
过滤规则是选择大于或等于0.5度的温度。另外,它必须至少连续5个月。
我已经消除了温度低于0.5度的数据(请参见下文)。
for (i in 1) {
el_nino=Nino3.4_1974_2000[which(Nino3.4_1974_2000$Nino3.4_degree_1974_2000_plain >= 0.5),]
}
> head(el_nino)
Month_common Nino3.4_degree_1974_2000_plain
32 1976-08-15 0.5192000
33 1976-09-15 0.8740000
34 1976-10-15 0.8864501
35 1976-11-15 0.8229501
36 1976-12-15 0.7336500
37 1977-01-15 0.9276500
Run Code Online (Sandbox Code Playgroud)
但是,我仍然需要连续提取5个月。我希望有人能帮助我。
我习惯smooth.spline估计数据的三次样条.但是当我使用方程式计算90%的逐点置信区间时,结果似乎有点偏差.有人可以告诉我,如果我做错了吗?我只是想知道是否有一个函数可以自动计算与函数相关的逐点间隔带smooth.spline.
boneMaleSmooth = smooth.spline( bone[males,"age"], bone[males,"spnbmd"], cv=FALSE)
error90_male = qnorm(.95)*sd(boneMaleSmooth$x)/sqrt(length(boneMaleSmooth$x))
plot(boneMaleSmooth, ylim=c(-0.5,0.5), col="blue", lwd=3, type="l", xlab="Age",
ylab="Relative Change in Spinal BMD")
points(bone[males,c(2,4)], col="blue", pch=20)
lines(boneMaleSmooth$x,boneMaleSmooth$y+error90_male, col="purple",lty=3,lwd=3)
lines(boneMaleSmooth$x,boneMaleSmooth$y-error90_male, col="purple",lty=3,lwd=3)
Run Code Online (Sandbox Code Playgroud)

因为我不确定我是否正确使用它,所以我使用gam()了mgcv包中的函数.
它立即给了一个信心乐队,但我不确定它是90%还是95%CI或其他什么.如果有人可以解释,那将是很棒的.
males=gam(bone[males,c(2,4)]$spnbmd ~s(bone[males,c(2,4)]$age), method = "GCV.Cp")
plot(males,xlab="Age",ylab="Relative Change in Spinal BMD")
Run Code Online (Sandbox Code Playgroud)

这是我的代码和相关的变量结构.
Correlation_Plot = contourplot(cor_Warra_SF_SST_JJA, region=TRUE, at=seq(-0.8, 0.8, 0.2),
labels=FALSE, row.values=(lon_sst), column.values=lat_sst,
xlab='longitude', ylab='latitude')
Correlation_Plot = Correlation_Plot + layer({ ok <- (cor_Warra_SF_SST_JJA>0.6);
panel.text(cor_Warra_SF_SST_JJA[ok]) })
Correlation_Plot
# this is the longitude (from -179.5 to 179.5) , 360 data in total
> str(lon_sst)
num [1:360(1d)] -180 -178 -178 -176 -176 ...
# this is the latitude (from -89.5 to 89.5), 180 data in total
> str(lat_sst)
num [1:180(1d)] -89.5 -88.5 -87.5 -86.5 -85.5 -84.5 -83.5 -82.5 -81.5 -80.5 ...
# This is data …Run Code Online (Sandbox Code Playgroud) 我对矢量或数组操作有点麻烦.
我有三个3D阵列,我想找到它们的平均值.我怎样才能做到这一点?我们不能使用mean() ,因为它只返回一个值.
更重要的是阵列中的一些单元格是NA,这意味着如果我只是添加它们
A = (B + C + D)/3
Run Code Online (Sandbox Code Playgroud)
结果也将显示NA.
如何让它识别出单元格是否为NA然后才跳过它.
喜欢
A = c(NA, 10, 15, 15, NA)
B = c(10, 15, NA, 22, NA)
C = c(NA, NA, 20, 26, NA)
Run Code Online (Sandbox Code Playgroud)
我想要平均这些向量的输出
(10, (10+15)/2, (15+20)/2, (15+22+26)/3, NA)
Run Code Online (Sandbox Code Playgroud)
我们也不能使用na.omit,因为它会移动索引的顺序.
这是相应的代码.我希望它会有所帮助.
for (yr in 1950:2011) {
temp_JFM <- sst5_sst2[,,year5_sst2==yr & (month5_sst2>=1 & month5_sst2<=3)]
k = 0
jfm=4*k+1
for (i in 1:72) {
for (j in 1:36) {
iposst5_sst2[i,j,jfm] <- (temp_JFM[i,j,1]+temp_JFM[i,j,2]+temp_JFM[i,j,3])/3
}
}
}
Run Code Online (Sandbox Code Playgroud)
谢谢.
它已经解决了. …