- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我有一个数据框,我正在对其运行蒙特卡罗模拟,使用 for 循环生成模拟分布。当我测试模拟代码时,我只是访问数据框中的第一个观察值:
Male.MC <-c()
for (j in 1:100){
for (i in 1:1) {
# u2 <- Male.DistF$Male.stddev_u2[i] * rnorm(1, mean = 0, sd = 1)
u2 <- Male.DistF$RndmEffct[i] * rnorm(1, mean = 0, sd = 1)
mc_bca <- Male.DistF$lmefits[i] + u2
temp <- Lambda.Value*mc_bca+1
ginv_a <- temp^(1/Lambda.Value)
d2ginv_a <- max(0,(1-Lambda.Value)*temp^(1/Lambda.Value-2))
mc_amount <- ginv_a + d2ginv_a * Male.DistF$Male.var[i]^2 / 2
z <- c(RespondentID <- Male.DistF$RespondentID[i],
Male.DistF$AgeFactor[i], Male.DistF$SampleWeight[i],
Male.DistF$Male.var[i], Male.DistF$lmefits[i], u2, mc_amount)
Male.MC <- as.data.frame(rbind(Male.MC,z))
}
}
colnames(Male.MC) <- c("RespondentID", "AgeFactor",
"SampleWeight", "VarByAge",
"lmefits", "u2", "mc_amount")
除了 Male.DistF$RespondentID
是一个因素之外,代码工作得很好,我没有得到因素水平输出,而是得到因素索引,在这种情况下我得到 1
因为 RespondentID
在 Male.DistF
数据框中按升序排列。 AgeFactor
也有同样的问题,我在其中获取索引而不是因子级别。
head(Male.MC)
RespondentID AgeFactor SampleWeight VarByAge lmefits u2 mc_amount
z 1 3 0.4952835 0.4189871 15.22634 0.2334501 11582.681
2 1 3 0.4952835 0.4189871 15.22634 0.3205741 11984.220
3 1 3 0.4952835 0.4189871 15.22634 -0.5674165 8420.678
4 1 3 0.4952835 0.4189871 15.22634 -0.5426489 8505.421
5 1 3 0.4952835 0.4189871 15.22634 0.4878695 12790.565
6 1 3 0.4952835 0.4189871 15.22634 0.1556925 11234.583
如何使 `Male.MC1 数据框包含这两个变量的因子水平?我试过:
z <- c(RespondentID <- as.character(Male.DistF$RespondentID[i]),
Male.DistF$AgeFactor[i], Male.DistF$SampleWeight[i],
Male.DistF$Male.var[i], Male.DistF$lmefits[i], u2, mc_amount)
和
z <- c((as.character(Male.DistF$RespondentID[i])),
Male.DistF$AgeFactor[i], Male.DistF$SampleWeight[i],
Male.DistF$Male.var[i], Male.DistF$lmefits[i], u2, mc_amount)
修复 RespondentID
输出,但我在语法上做错了,它试图将所有输出转换为因子:
There were 50 or more warnings (use warnings() to see the first 50)
str(Male.MC)
'data.frame': 100 obs. of 7 variables:
$ RespondentID: Factor w/ 1 level "100020": 1 1 1 1 1 1 1 1 1 1 ...
..- attr(*, "names")= chr "z" "" "" "" ...
$ AgeFactor : Factor w/ 1 level "3": 1 1 1 1 1 1 1 1 1 1 ...
..- attr(*, "names")= chr "z" "" "" "" ...
$ SampleWeight: Factor w/ 1 level "0.495283471": 1 1 1 1 1 1 1 1 1 1 ...
..- attr(*, "names")= chr "z" "" "" "" ...
$ VarByAge : Factor w/ 1 level "0.418987052181831": 1 1 1 1 1 1 1 1 1 1 ...
..- attr(*, "names")= chr "z" "" "" "" ...
$ lmefits : Factor w/ 1 level "15.2263403968895": 1 1 1 1 1 1 1 1 1 1 ...
..- attr(*, "names")= chr "z" "" "" "" ...
$ u2 : Factor w/ 1 level "-0.100954008424162": 1 NA NA NA NA NA NA NA NA NA ...
..- attr(*, "names")= chr "z" "" "" "" ...
$ mc_amount : Factor w/ 1 level "10151.4582133747": 1 NA NA NA NA NA NA NA NA NA ...
..- attr(*, "names")= chr "z" "" "" "" ...
为了测试,这里是输入数据框 Male.DistF
的前几行:
AgeFactor RespondentID SampleWeight IntakeAmt RndmEffct NutrientID Gender Age BodyWeight IntakeDay BoxCoxXY lmefits lmeres TotWts GrpWts NumSubjects TotSubjects Male.var
1725 9to13 100020 0.4952835 12145.852 0.30288536 267 1 12 51.6 Day1Intake 15.61196 15.22634 0.27138449 2291.827 763.0604 525 2249 0.4189871
203 14to18 100419 0.3632839 9591.953 0.02703093 267 1 14 46.3 Day1Intake 15.01444 15.31373 -0.18039624 2291.827 472.3106 561 2249 0.3365423
Lambda.Value
为 0.1
。Male.DistF
上的信息是:
str(Male.DistF)
'data.frame': 2249 obs. of 18 variables:
$ AgeFactor : Ord.factor w/ 4 levels "1to3"<"4to8"<..: 3 4 3 4 2 2 3 1 1 3 ...
$ RespondentID: Factor w/ 2249 levels "100020","100419",..: 1 2 3 4 5 6 7 8 9 10 ...
$ SampleWeight: num 0.495 0.363 0.495 1.326 2.12 ...
$ IntakeAmt : num 12146 9592 7839 11113 7150 ...
$ RndmEffct : num 0.3029 0.027 0.0772 0.4667 -0.1593 ...
$ NutrientID : int 267 267 267 267 267 267 267 267 267 267 ...
$ Gender : int 1 1 1 1 1 1 1 1 1 1 ...
$ Age : int 12 14 11 15 6 5 10 2 2 9 ...
$ BodyWeight : num 51.6 46.3 46.1 63.2 28.4 18 38.2 14.4 14.6 32.1 ...
$ IntakeDay : Factor w/ 2 levels "Day1Intake","Day2Intake": 1 1 1 1 1 1 1 1 1 1 ...
$ BoxCoxXY : num 15.6 15 14.5 15.4 14.3 ...
$ lmefits : num 15.2 15.3 15 15.8 14.3 ...
$ lmeres : num 0.271 -0.18 -0.342 -0.424 -0.053 ...
$ TotWts : num 2292 2292 2292 2292 2292 ...
$ GrpWts : num 763 472 763 472 779 ...
$ NumSubjects : int 525 561 525 561 613 613 525 550 550 525 ...
$ TotSubjects : int 2249 2249 2249 2249 2249 2249 2249 2249 2249 2249 ...
$ Male.var : num 0.419 0.337 0.419 0.337 0.267 ...
正如您从我的 Male.DistF
数据中看到的那样,对于第一次观察的 100 次重复,在 Male.MC
数据框中我想要 100020
作为 RespondentID
(而不是 1
),9to13
作为 AgeFactor
(而不是 3
)。我的输出指令哪里出错了,我该如何解决?特别是,我没有理解为什么我尝试使用 as.character
会严重误入歧途以致于影响整个输出。顺便说一句,我也欢迎提出加速循环的建议。我所做的只是为我的 Male.DistF
数据框中的每个观察构建 100 组值。
最佳答案
你可以试试换行
z <- c(...
将新行创建为向量,即,强制所有元素具有相同的类型,使用 1 行 data.frame,以保持列的类型。
z <- data.frame(
RespondentID = Male.DistF$RespondentID[i],
AgeFactor = Male.DistF$AgeFactor[i],
SampleWeight = Male.DistF$SampleWeight[i],
VarByAge = Male.DistF$Male.var[i],
lmefits = Male.DistF$lmefits[i],
u2 = u2,
mc_amount = mc_amount
)
关于R:如何从 for 循环而不是索引输出因子水平?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8774515/
我正在从 Stata 迁移到 R(plm 包),以便进行面板模型计量经济学。在 Stata 中,面板模型(例如随机效应)通常报告组内、组间和整体 R 平方。 I have found plm 随机效应
关闭。这个问题不符合Stack Overflow guidelines .它目前不接受答案。 想改进这个问题?将问题更新为 on-topic对于堆栈溢出。 6年前关闭。 Improve this qu
我想要求用户输入整数值列表。用户可以输入单个值或一组多个值,如 1 2 3(spcae 或逗号分隔)然后使用输入的数据进行进一步计算。 我正在使用下面的代码 EXP <- as.integer(rea
当 R 使用分类变量执行回归时,它实际上是虚拟编码。也就是说,省略了一个级别作为基础或引用,并且回归公式包括所有其他级别的虚拟变量。但是,R 选择了哪一个作为引用,以及我如何影响这个选择? 具有四个级
这个问题基本上是我之前问过的问题的延伸:How to only print (adjusted) R-squared of regression model? 我想建立一个线性回归模型来预测具有 15
我在一台安装了多个软件包的 Linux 计算机上安装了 R。现在我正在另一台 Linux 计算机上设置 R。从他们的存储库安装 R 很容易,但我将不得不使用 安装许多包 install.package
我正在阅读 Hadley 的高级 R 编程,当它讨论字符的内存大小时,它说: R has a global string pool. This means that each unique strin
我们可以将 Shiny 代码写在两个单独的文件中,"ui.R"和 "server.R" , 或者我们可以将两个模块写入一个文件 "app.R"并调用函数shinyApp() 这两种方法中的任何一种在性
我正在使用 R 通过 RGP 包进行遗传编程。环境创造了解决问题的功能。我想将这些函数保存在它们自己的 .R 源文件中。我这辈子都想不通怎么办。我尝试过的一种方法是: bf_str = print(b
假设我创建了一个函数“function.r”,在编辑该函数后我必须通过 source('function.r') 重新加载到我的全局环境中。无论如何,每次我进行编辑时,我是否可以避免将其重新加载到我的
例如,test.R 是一个单行文件: $ cat test.R # print('Hello, world!') 我们可以通过Rscript test.R 或R CMD BATCH test.R 来
我知道我可以使用 Rmd 来构建包插图,但想知道是否可以更具体地使用 R Notebooks 来制作包插图。如果是这样,我需要将 R Notebooks 编写为包小插图有什么不同吗?我正在使用最新版本
我正在考虑使用 R 包的共享库进行 R 的站点安装。 多台计算机将访问该库,以便每个人共享相同的设置。 问题是我注意到有时您无法更新包,因为另一个 R 实例正在锁定库。我不能要求每个人都关闭它的 R
我知道如何从命令行启动 R 并执行表达式(例如, R -e 'print("hello")' )或从文件中获取输入(例如, R -f filename.r )。但是,在这两种情况下,R 都会运行文件中
我正在尝试使我当前的项目可重现,因此我正在创建一个主文档(最终是一个 .rmd 文件),用于调用和执行其他几个文档。这样我自己和其他调查员只需要打开和运行一个文件。 当前设置分为三层:主文件、2 个读
关闭。这个问题不符合Stack Overflow guidelines .它目前不接受答案。 想改进这个问题?将问题更新为 on-topic对于堆栈溢出。 5年前关闭。 Improve this qu
我的 R 包中有以下描述文件 Package: blah Title: What the Package Does (one line, title case) Version: 0.0.0.9000
有没有办法更有效地编写以下语句?accel 是一个数据框。 accel[[2]]<- accel[[2]]-weighted.mean(accel[[2]]) accel[[3]]<- accel[[
例如,在尝试安装 R 包时 curl作为 usethis 的依赖项: * installing *source* package ‘curl’ ... ** package ‘curl’ succes
我想将一些软件作为一个包共享,但我的一些脚本似乎并不能很自然地作为函数运行。例如,考虑以下代码块,其中“raw.df”是一个包含离散和连续类型变量的数据框。函数“count.unique”和“squa
我是一名优秀的程序员,十分优秀!