我正在尝试使用R中的manova函数进行多元方差分析.我的问题是我试图找到一种方法来传递因变量列表,而不是手动输入它们,因为有很多并且它们很可怕名.我的数据位于数据框中,其中"unit"是因变量(factor),其余列是各种数字响应变量.例如
unit C_pct Cln C_N_mol Cnmolln C_P_mol N_P_mol
1 C 48.22 3.88 53.92 3.99 3104.75 68.42
2 C 49.91 3.91 56.32 4.03 3454.53 62.04
3 C 50.75 3.93 56.96 4.04 3922.01 69.16
4 SH 50.72 3.93 46.58 3.84 2590.16 57.12
5 SH 51.06 3.93 43.27 3.77 2326.04 53.97
6 SH 48.62 3.88 40.97 3.71 2357.16 59.67
Run Code Online (Sandbox Code Playgroud)
如果我把manova电话称为
fit <- manova(cbind(C_pct, Cln) ~ unit, data = plots)
Run Code Online (Sandbox Code Playgroud)
它工作正常,但我希望能够传递一长串列,而无需逐个命名,类似于
fit <- manova(cbind(colnames(plots[5:32])) ~ unit, data = plots)
Run Code Online (Sandbox Code Playgroud)
要么
fit <- manove(cbind(plots[,5:32]) ~ …Run Code Online (Sandbox Code Playgroud) 我正在尝试使用 deSolve 在 R 中解决一个简单的 ODE: dQ/dt = f(Q)*(P - E).整个过程是 Q 的时间序列。诀窍是 P 和 E 是数据本身的固定时间序列,因此 diff eq 仅在 Q 中有效。
用固定的时间步长迭代解决这个问题相对简单,但我试图找到一种在 R 中使用自适应时间步长的方法。因为 P 和 E 是离散的,连续的时间步长可能具有相同的 P 和 E 值,其中很好。我一直在玩 deSolve,但一直无法解决这个问题。理想情况下,我想使用标准的四阶 Runge-Kutta。
有任何想法吗?在 MATLAB 中做吗?
编辑可复制的例子。我希望能够使用可变时间步长 Runge-Kutta 4 方法进行此计算。我可以很容易地对固定时间步 rk4 进行编程,而不是自适应。
working <- structure(list(datetime = structure(c(1185915600, 1185919200,
1185922800, 1185926400, 1185930000, 1185933600, 1185937200, 1185940800,
1185944400, 1185948000, 1185951600), class = c("POSIXct", "POSIXt"
), tzone = "UTC"), p = c(0, 0, 0, 1.1, 0.5, 0.7, 0, 0, 1.3, 0, …Run Code Online (Sandbox Code Playgroud) 好吧,我被一个家庭酿造的ggplot难倒了.
我想要做的是有一个三行,一列刻面图,每个面都有不同的y轴标签.y轴的单位都是相同的.这将是最方便的,但谷歌搜索告诉我,这可能是不可能的.
或者,我使用grid.arrange 找到了这个解决方案,看起来它会起作用.但是,我想仅为一个绘图保留一个图例并将其从其他两个中移除,但保持间距就像它仍然存在一样,以便所有内容都很好.几年前有人遇到了同样的问题,但建议的解决方案已经过折旧,我无法理解如何使其在现代ggplot中运行.
任何帮助表示赞赏!使用facet是最简单的!
编辑后使用user20560的gridArrange解决方案添加绘图副本.非常接近那里,只想回到顶部和底部面板周围的盒子!
