有时我看到Stack Overflow问题中发布的数据格式与此问题类似.这不是第一次,所以我决定提出一个问题,然后用一种方法回答问题,使发布的数据变得可口.
我将在此处发布数据集示例,以防问题被删除.
+------------+------+------+----------+--------------------------+
| Date | Emp1 | Case | Priority | PriorityCountinLast7days |
+------------+------+------+----------+--------------------------+
| 2018-06-01 | A | A1 | 0 | 0 |
| 2018-06-03 | A | A2 | 0 | 1 |
| 2018-06-03 | A | A3 | 0 | 2 |
| 2018-06-03 | A | A4 | 1 | 1 |
| 2018-06-03 | A | A5 | 2 | 1 |
| 2018-06-04 | A | A6 | …
Run Code Online (Sandbox Code Playgroud) 是否有一个R数据结构,我可以存储一些lm
或lmer
多个gam
对象? J
有盒装数组,并且可以将任何东西放入这种盒装数组的单元格中.我认为这就是我在R中寻找的东西.
我尝试过列表和数据框,但无济于事; 我以为列表可能有效.
> testlist <- list()
> testlist[1] <- subject1.2008.gam
Warning message:
In testlist[1] <- subject1.2008.gam :
number of items to replace is not a multiple of replacement length
>
Run Code Online (Sandbox Code Playgroud)
或者,有没有办法在LHS上创建和使用变量名<-
?
最后,也许你有一个更好的习惯让我考虑.例如,我正试图在一组主题和年份上创建一系列GAM模型.后来,我希望能够从这些模型中绘制或预测,所以我认为我需要保持完整的模型.因为我希望以后能够将此代码用于不同的数据集,所以我不想硬编码gam
对象的名称及其编号.
虽然我开始将gam()
调用放在循环中,但我认为其中一个apply()
函数可能效果更好,但我仍然需要一个存储输出的位置.
我在预测 r 中的置信区间 ros 和 nls 时遇到一些麻烦。
pl <- ggplot(data) + geom_point(aes(x=date, y=cases),size=2, colour="black") + xlab("Date") + ylab("Cases")
model = nls(cases ~ SSlogis(log(date), Asym, xmid, scal), data= data )
new.data = data.frame(date=c(1:100))
interval <- predict(model, newdata = new.data, se.fit = TRUE, interval = "confidence", level= 0.9)
new.data[c("fit","lwr.conf", "upr.conf")] <- interval
pl +
geom_ribbon(data=new.data, aes(x=date, ymin=lwr.pred, ymax=upr.pred), alpha=0.05, inherit.aes=F, fill="blue")
Run Code Online (Sandbox Code Playgroud)
当我运行它时,它没有显示错误,但我得到的区间只是一个拟合向量,没有上置信区间和下置信区间。
一串长dplyr管道的末端是
mutate(n = if_else(FiscalYear == "FY2018" & Candy == "SNICKERS", n - 3, n))
这给出了这个错误
Error in mutate_impl(.data, dots) : Evaluation error: `false` must be type double, not integer.
Run Code Online (Sandbox Code Playgroud)
如果我改为这两个中的任何一个,那就会消失
mutate(n = ifelse(FiscalYear == "FY2018" & Candy == "SNICKERS", n - 3, n))
mutate(n = if_else(FiscalYear == "FY2018" & Candy == "SNICKERS", n - 3L, n))
我认为做一个简单的可重复娱乐是最简单的,所以我做了你在下面看到的,但我不能再得到错误了.知道发生了什么事吗?为什么不在ifelse
哪里工作,如果我改变3到3L if_else
,为什么if_else
工作?我理解L
强制 3是一个整数,这是正确的吗?
library(tidyverse)
df <- tribble(
~name, ~fruit, ~qty,
"Bob", "apple", 10,
"Bill", "apple", …
Run Code Online (Sandbox Code Playgroud) 我正在 R studio 中安装 XLConnect 库,但无法这样做。
我知道这个包有 java 依赖,我的 R 软件和 java 都是 64 位的。此外,两者都已正确配置。在安装 XLConnect 之前,我还安装了 rJava 包。该软件包运行正常,但现在出现此错误。
library(XLConnect)
Run Code Online (Sandbox Code Playgroud)
错误:“XLconnect”的包或命名空间加载失败:
.onload 在 XLConnect 的 loadNamespace() 中失败,详细信息:
调用。System2("cat",c("/etc/*-release"), stdout =TRUE, stderr = TRUE) 错误:'找不到“猫”。
请帮我。
我有一个带有3个cols的data.frame:日期,费率,价格.我想在价格和价格之前添加来自矩阵的列.
df = tibble('date' = c('01/01/2000', '02/01/2000', '03/01/2000'),
'rate' = c(7.50, 6.50, 5.54),
'price' = c(92, 94, 96))
Run Code Online (Sandbox Code Playgroud)
我使用输出矩阵的函数计算了速率的滞后:
rate_Lags = matrix(data = c(NA, 7.50, 5.54, NA, NA, 7.50), ncol=2, dimnames=list(c(), c('rate_tMinus1', 'rate_tMinus2'))
我想在使用名称索引而不是列顺序之后在费率(和价格之前)之后插入这些滞后.
add_column
来自tibble包的函数(在data.frame中的两列之间添加一列)不起作用,因为它只接受一个原子向量(因此如果我有10个滞后,我将不得不调用add_column 10次).我可以apply
在我的rate_Lags
矩阵中使用.然而,然而,我失去了rate_Lags
矩阵中的dimnames .
如果我知道特定列名的位置(任何检索位置的函数),使用数字索引(子集)(https://stat.ethz.ch/pipermail/r-help/2011-August/285534.html)就可以工作列名?).
有插入一串柱中的任何简单的方法小号在数据帧/ tibble对象的特定位置?
我是R的新手,使用ggplot2绘制指数曲线时遇到一些困难。我下面有一组数据。
数据
X Y x y
1 0.6168111 37.20637 0.6168111 37.20637
2 0.5478698 24.17084 0.5478698 24.17084
3 0.6082697 26.21261 0.6082697 26.21261
4 0.6094899 26.14065 0.6094899 26.14065
5 0.6095040 38.56314 0.6095040 38.56314
6 0.6933108 36.78443 0.6933108 36.78443
7 0.5796637 27.82840 0.5796637 27.82840
8 0.4716866 30.63080 0.4716866 30.63080
9 0.5291792 29.78255 0.5291792 29.78255
10 1.2520000 33.12657 1.2520000 33.12657
11 1.2260000 31.81066 1.2260000 31.81066
12 1.2690000 59.91388 1.2690000 59.91388
13 1.2060000 49.92380 1.2060000 49.92380
14 1.0760000 29.67524 1.0760000 29.67524
15 0.9750000 27.43602 0.9750000 …
Run Code Online (Sandbox Code Playgroud) 我正在使用数据集“文件”的统计中位数执行引导程序,仅包含一列“总计”。就是这个:
Total <-
c(2089, 1567, 1336, 1616, 1590, 1649, 1341, 1614, 1590, 1621,
1621, 1631, 1295, 107, 18, 195, 2059, 870, 2371, 787, 98, 2422,
655, 1277, 1336, 2109, 1811, 1337, 1290, 1308, 1359, 1600, 1296,
693, 107, 1359, 89, 89, 89, 89, 2411, 1639, 89, 89, 1283, 89,
89, 89, 2341, 1012, 1295, 1853, 1277, 1571, 1288, 1300, 1619,
107, 555, 1612, 1300, 1300, 2093, 133, 1674, 988, 132, 647, 606,
544, 873, 274, 120, 1620, 1601, 1601, 906, …
Run Code Online (Sandbox Code Playgroud) 我有一个发行版,例如:
d
#[1] 4 22 15 5 9 5 11 15 21 14 14 23 6 9 17 2 7 10 4
Run Code Online (Sandbox Code Playgroud)
或者,格式d
为dput
向量。
d <- c(4, 22, 15, 5, 9, 5, 11, 15, 21, 14, 14, 23, 6, 9, 17, 2, 7, 10, 4)
Run Code Online (Sandbox Code Playgroud)
当我应用 ks.test 时:
gamma <- ks.test(d, "pgamma", shape = 3.178882, scale = 3.526563)
Run Code Online (Sandbox Code Playgroud)
这会给出以下警告:
警告消息:在 ks.test(d, "pgamma", shape = 3.178882, scale = 3.526563) 中:Kolmogorov-Smirnov 测试中不应存在关系
我尝试了 put unique(d)
,但显然我的数据减少了值,我不希望发生这种情况。
和网上其他的方式和例子一样,这个例子也发生了,但不同的是测试显示一些带有警告消息的结果,而不仅仅是没有值的消息ks.test
。 …
我在 R 中有一个列表:
A = list(c(1,4), 2, 3, c(1,4))
names(A) <- c("name 1", "name 2", "name 2", "name 3")
$`name 1`
[1] 1 4
$`name 2`
[1] 2
$`name 2`
[1] 3
$`name 3`
[1] 1 4
Run Code Online (Sandbox Code Playgroud)
我想组合具有相同名称的列表元素。输出看起来像这样
$`name 1`
[1] 1 4
$`name 2`
[1] 2 3
$`name 3`
[1] 1 4
Run Code Online (Sandbox Code Playgroud)
我将如何实现这一目标?