我正在尝试计算几个二项式比例置信区间。我的数据位于数据框中,虽然我可以成功地estimate从 返回的对象中提取 ,但在数据框中运行时prop.test该conf.int变量似乎为空。
library(dplyr)
cases <- c(50000, 1000, 10, 2343242)
population <- c(100000000, 500000000, 100000, 200000000)
df <- as.data.frame(cbind(cases, population))
df %>% mutate(rate = prop.test(cases, population, conf.level=0.95)$estimate)
Run Code Online (Sandbox Code Playgroud)
这适当地返回
cases population rate
1 50000 1e+08 0.00050000
2 1000 5e+08 0.00000200
3 10 1e+05 0.00010000
4 2343242 2e+08 0.01171621
Run Code Online (Sandbox Code Playgroud)
然而,当我跑
df %>% mutate(confint.lower= prop.test(cases, pop, conf.level=0.95)$conf.int[1])
Run Code Online (Sandbox Code Playgroud)
我伤心地得到
Error in mutate_impl(.data, dots) :
Column `confint.lower` is of unsupported type NULL
Run Code Online (Sandbox Code Playgroud)
有什么想法吗?我知道计算二项式比例置信区间的替代方法,但我真的很想学习如何使用dplyr。
谢谢!
我正在尝试模拟当前使用 R 在 Excel 中手动完成的过程,以帮助简化该过程,因此不需要手动完成。这是我正在使用的一些示例数据的示例(请记住,这是一组更大的数据的片段)。
qty_available<- c(13500, 8500, 4600)
supply_qty<- c(0, 1000, 0)
forecast<- c(1200, 400, 3000)
demand_q<- c( 100, 800, 6000)
df<- data.frame(qty_available, supply_qty, forecast, demand_q)
Run Code Online (Sandbox Code Playgroud)
我正在尝试进行以下操作(伪代码):
qty_available = previous(qty_available) + supply_qty - forecast - demand_q
Run Code Online (Sandbox Code Playgroud)
我可以忽略第一个观察结果,因为它与我的任务上下文无关。
所以在第二个观察中,我们会给13,500 + 1000 - 400 - 800我们13,300. 第三个观察结果将是13,300 + 0 - 3000 - 6000给予我们4300。
如果我要在 Excel 中打开此数据集(以 CSV 格式读取),则过程很简单。我会在 cell 中使用这个公式A3 = A2+B3-C3-D3。然后只需将其向下拖动到列的其余部分即可。
我将如何在 R 中模仿这一点?
我已尝试使用以下命令执行此操作
df<- mutate(df, qty_available = lag(qty_available) …Run Code Online (Sandbox Code Playgroud) 解释起来有点困难,但我有一个数据框,其值看起来像楼梯 - 对于每个日期,都有不同的列,某些日期的值不适用。我想创建一个新列,其中包含最后一个非 NA 列值。
希望这个例子更有意义:
示例数据框:
test <- data.frame("date" = c(as.Date("2020-01-01"), as.Date("2020-01-02"), as.Date("2020-01-03")),
"a" = c(4, 3, 4),
"b" = c(NA, 2, 1),
"c" = c(NA, NA, 5))
Run Code Online (Sandbox Code Playgroud)
期望的输出:
date............val
2020-01-01...... 4
2020-01-02...... 2
2020-01-03...... 5
Run Code Online (Sandbox Code Playgroud)
我也不想做类似获取日期的行号并获取该列号 + 1 之类的事情,但如果这是唯一的方法,那就是这样。谢谢!
显示 tibbles 时如何抑制列类?例如,
> cars <- as_tibble(mtcars)
> cars
# A tibble: 32 x 11
mpg cyl disp hp drat wt qsec vs am gear carb
<dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> # <-- I don't want to show this row
1 21 6 160 110 3.9 2.62 16.5 0 1 4 4
2 21 6 160 110 3.9 2.88 17.0 0 1 4 4
3 22.8 4 108 93 3.85 2.32 18.6 1 1 …Run Code Online (Sandbox Code Playgroud) 我正在尝试进行成对测试,以确定成对组之间的生存率是否存在差异。
\n\n使用的数据:
\n\n
time_Untreated<- c(20, 21, 23, 24, 24, 26, 26, 27, 28, 30)\ncensor_Untreated<- c(rep(1,10), rep(0,0))\ncensor_Untreated\n\ntime_Radiated<- c(26,28, 29, 29, 30, 30, 31, 31, 32, 35)\ncensor_Radiated<- c(rep(1,9), rep(0,1))\ncensor_Radiated\n\ntime_Radiated_BPA <- c(31, 32, 34, 35, 36, 38, 38, 39, 42, 42)\ncensor_Radiated_BPA <- c(rep(1,8), rep(0,2))\ncensor_Radiated_BPA\n\nmyData <- data.frame(time=c(time_Untreated, time_Radiated, time_Radiated_BPA),\n status=c(censor_Untreated, censor_Radiated, censor_Radiated_BPA),\n group= rep(1:3, each=10))\n\nlibrary(KMsurv)\nlibrary(survival)\nRun Code Online (Sandbox Code Playgroud)\n\n我尝试使用该功能:pairwise_survdiff但无法在其上构建代码。
另外,我想进行趋势测试,以测试这个有序的假设(未经治疗的动物的生存率最差,接受辐射的老鼠的生存率略有提高,接受辐射的老鼠+BPA应该有最好的生存率。)
\n\n这是我对输出所做的处理,但我不确定卡方值和 p 值是哪个:
\n这正确吗?
KM.fit<-survfit(Surv(time,status)~group, conf.type="none", data=myData)\nKM.fit\n\nCall: survfit(formula = Surv(time, status) ~ group, data = myData, conf.type = "none") …Run Code Online (Sandbox Code Playgroud)